00001 /************************************************************************/ 00002 /* Ex Nihlo Engine by Hermanns Christophe */ 00003 /************************************************************************/ 00004 /* This program is free software; you can redistribute it and/or */ 00005 /* modify it under the terms of the GNU General Public License */ 00006 /* as published by the Free Software Foundation; either version 2 */ 00007 /* of the License, or (at your option) any later version. */ 00008 /* */ 00009 /* This program is distributed in the hope that it will be useful, */ 00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ 00012 /* */ 00013 /* See the GNU General Public License for more details. */ 00014 /* */ 00015 /* You should have received a copy of the GNU General Public License */ 00016 /* along with this program; if not, write to the Free Software */ 00017 /* Foundation, Inc., 59 Temple Place - Suite 330, */ 00018 /* Boston, MA 02111-1307, USA. */ 00019 /* */ 00020 /* If you use a important part of this code please send me a mail */ 00021 /* I just want to see where my code go thks :) */ 00022 /************************************************************************/ 00023 00024 /************************************************************************/ 00025 /* Contact */ 00026 /************************************************************************/ 00027 /* ExNihilo Website :www.ploksoftware.org */ 00028 /* */ 00029 /* Hermanns Christophe ExNihilo creator and main programmer */ 00030 /* */ 00031 /* Mail : Data@ploksoftware.org */ 00032 /* ICQ : 8030901 */ 00033 /* MSN Messenger : Data_7@hotmail.com */ 00034 /* */ 00035 /* */ 00036 /************************************************************************/ 00037 00038 /************************************************************************/ 00039 /* File Description */ 00040 /************************************************************************/ 00041 /* File Name :ExManagerEntity.h */ 00042 /* */ 00043 /* Star Date :28/09/2003 */ 00044 /* */ 00045 /* Last Update :28/09/2003 */ 00046 /* */ 00047 /* File Description : */ 00048 /* */ 00049 /* For update of this file check : www.ploksoftware.org */ 00050 /************************************************************************/ 00051 00052 #ifndef __EXMANAGERENITY_H__ 00053 #define __EXMANAGERENITY_H__ 00054 //------------------------------------------------------------------------ 00055 //Includes 00056 //------------------------------------------------------------------------ 00057 #include "ExDefine.h" 00058 //------------------------------------------------------------------------ 00059 #include "Math/ExMath.h" 00060 //------------------------------------------------------------------------ 00061 #include "Manager/ManagerObject/ExManagerObject.h" 00062 #include "Manager/ManagerObject/ExManagerMesh.h" 00063 #include "Manager/ManagerObject/ExManagerGizmo.h" 00064 #include "Manager/ManagerObject/ExManagerModele.h"//TO DO remove this one en use only mesh 00065 //------------------------------------------------------------------------ 00066 #include "Object/ExCEntity.h" 00067 #include "Object/ExCGroupEntity.h" 00068 //------------------------------------------------------------------------ 00069 enum EntityType 00070 { 00071 ENTITY, 00072 ENTITY_GROUP, 00073 ENTITY_UNKNOWN 00074 }; 00075 struct Groupe 00076 { 00077 ExCEntity PropGroupe; 00078 std::vector<ExCEntity *> m_VecEntity; 00079 int m_NumberEntity; 00080 }; 00081 class ExManagerEntity : public ExManagerObject<ExCEntity *> 00082 { 00083 private: 00084 //------------------------------------------------------------------------ 00085 // Variable 00086 //------------------------------------------------------------------------ 00087 ExManagerMesh *ManagerMesh; 00088 ExManagerGizmo *ManagerGizmo; 00089 ExManagerModel *ManagerModel;//TO DO remove this one en use only mesh 00090 //------------------------------------------------------------------------ 00091 // Constructor // Destructor 00092 //------------------------------------------------------------------------ 00093 static bool m_flag; 00094 static ExManagerEntity *m_instance; 00095 ExManagerEntity(void); 00096 ~ExManagerEntity(void); 00097 EntityType GetEntityType(std::string FileName); 00098 00099 std::vector<Groupe> m_VecGroupe; 00100 public: 00101 //------------------------------------------------------------------------ 00102 // Methode 00103 //------------------------------------------------------------------------ 00104 static ExManagerEntity* CreateSingleton(void); 00105 void Reset(void); 00106 void Reload(void); 00107 void Init(void); 00108 void Draw(void); 00109 void Load(std::string FileName); 00110 void LoadGroupe(std::string FileName); 00111 ExCAction InputCommand(ExCCommand Command); 00112 ExCAction InputAction(ExCAction Action); 00113 00114 inline void SetManagerMesh(ExManagerMesh * Mesh){ManagerMesh = Mesh;} 00115 inline void SetManagerGizmo(ExManagerGizmo * Gizmo){ManagerGizmo = Gizmo;} 00116 inline void SetManagerModel(ExManagerModel * Model){ManagerModel = Model;}//TO DO remove this one en use only mesh 00117 00118 ExCEntity * GetObject(ExNihilo::ExId id); 00119 ExCEntity * GetCurrentObject(); 00120 }; 00121 //------------------------------------------------------------------------ 00122 #endif //__EXMANAGERENITY_H__