-
Notifications
You must be signed in to change notification settings - Fork 1
/
editor.h
102 lines (74 loc) · 3.36 KB
/
editor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
* File: editor.h
* Author: Aztyu
*
* Created on 26 décembre 2014, 11:29
*/
#ifndef EDITOR_H
#define EDITOR_H
#include "GraphicalInterface.h"
//! Classe de base qui contient toutes les zones et la plupart des informations
class Editor {
public:
//! Constructeur de base.
/** \param struct_pointer Pointeur vers la structure Pointers.*/
Editor(Pointer* struct_pointer);
//! Destructeur de base.
virtual ~Editor();
//Gestion des zones
//! Creer une zone ayant un nom donne.
/** \param base_name Le nom de la zone à créer.*/
void createZone(const char* base_name);
//! Creer une zone sans nom specifique.*/
void createZone();
//! Supprime toutes les zones pour préparer au chargement de nouvelles zones
void removeZones();
//! Supprime une certaine zone du programme et de Irrlicht
/** \param zone Le pointeur vers la Zone à supprimer*/
void removeZone(Zone* zone);
//! Definit la zone actuelle.
/** \param zone Pointeur vers la zone à définir comme actuelle.*/
void setCurrentZone(Zone* zone);
//! Selectionne une Zone selon sa position dans le vector.
/** \param index Position de l'objet dans le vector zone_array. */
void setCurrentZone(int index);
//! Definit le Pointers utilisé dans le programme.
/** \param struct_pointer Pointeur vers le Pointers à utiliser.*/
void setMainPointer(Pointer* struct_pointer);
//! Change la visibilite de la Zone et les GroupObject.
/** \param isVisible booleen qui definit la visibilite ou non.*/
void setCurrentZoneVisible(bool isVisible);
//! Effectue toutes les operations necessaires au changement de Zone.*/
void finishZoneSwitch();
//Recuperation d'informations
//! Renvoie le Pointers utilisé.
/** \return Un pointer vers le Pointers utilisé.*/
Pointer* getMainPointer();
//! Renvoie un pointeur vers l'Editor.
/** \return Un pointer vers cet Editor utilisé.*/
Editor* getEditor();
//! Renvoie le nombre de zones actuellement chargées
/** \return Un entier qui indique le nombre de Zone*/
int getNumberOfZones();
//! Renvoie un pointeur vers la zone actuelle
/** \return Un pointer vers la zone actuellement utilisée.*/
Zone* getCurrentZone();
//! Nous indique si le nom est deja pris
/** \return true si il est pris, false autrement */
bool isNameTaken(std::string name);
//! Exporte toutes les donnees */
void exportData();
//! Importe toutes les donnees */
/** \return True si des données ont été importées, False sinon*/
bool importData();
//! Importe toutes les zones */
void importZone(rapidxml::xml_node<> *zone_node);
private:
//! vector qui contient les pointeurs vers toutes les Zones de l'Editor.
std::vector<Zone*> zone_array;
//! Pointeur vers la Zone actuelle.
Zone* current_zone;
//! Pointeur vers la structure Pointers du projet.
Pointer* main_pointer;
};
#endif /* EDITOR_H */