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 :ExManagerMesh.h */ 00042 /* */ 00043 /* Star Date :03/15/2002 */ 00044 /* */ 00045 /* Last Update :07/15/2003 */ 00046 /* */ 00047 /* File Description : */ 00048 /* */ 00049 /* For update of this file check : www.ploksoftware.org */ 00050 /************************************************************************/ 00051 class ExManagerMesh; 00052 00053 #ifndef __EXMANAGERMESH_H__ 00054 #define __EXMANAGERMESH_H__ 00055 //------------------------------------------------------------------------ 00056 //Includes 00057 //------------------------------------------------------------------------ 00058 #include "ExDefine.h" 00059 //------------------------------------------------------------------------ 00060 #include "Math/ExMath.h" 00061 //------------------------------------------------------------------------ 00062 #include "Manager/ManagerObject/ExManagerObject.h" 00063 #include "Manager/ManagerObject/ExManagerTexture.h" 00064 #include "Manager/ManagerObject/ExManagerModele.h" 00065 //------------------------------------------------------------------------ 00066 #include "Object/Object3D/Mesh/ExCMesh.h" 00067 #include "Object/Object3D/Mesh/ExCMeshFireEffect.h" 00068 #include "Object/Object3D/Mesh/ExCMeshWaterEffect.h" 00069 #include "Object/Object3D/Mesh/ExCMeshSummonCylenderEffect.h" 00070 #include "Object/Object3D/Mesh/ExCMeshSmogEffect.h" 00071 #include "Object/Object3D/Mesh/ExCMeshWaterDisqueEffect.h" 00072 #include "Object/Object3D/Mesh/ExCMeshLOD3ds.h" 00073 #include "Object/Object3D/Mesh/ExCMeshSauronEffect.h" 00074 #include "Object/Object3D/Mesh/ExCMesh3ds.h" 00075 #include "Object/Object3D/Mesh/ExCMeshBilboarded.h" 00076 //------------------------------------------------------------------------ 00077 enum MeshType 00078 { 00079 MESH_FIRE_EFFECT, 00080 MESH_WATER_EFFECT, 00081 MESH_SUMMON_CYLENDER_EFFECT, 00082 MESH_SMOG_EFFECT, 00083 MESH_WATER_DISQUE_EFFECT, 00084 MESH_LOD_3DS, 00085 MESH_SAURON_EFFECT, 00086 MESH_3DS, 00087 MESH_BILBOARDED, 00088 MESH_UNKNOWN 00089 }; 00090 //------------------------------------------------------------------------ 00091 00092 class ExManagerMesh : public ExManagerObject<ExCMesh *> 00093 { 00094 private: 00095 //------------------------------------------------------------------------ 00096 // Variable 00097 //------------------------------------------------------------------------ 00098 ExManagerTexture *ManagerTexture; 00099 ExManagerModel *ManagerModel; 00100 //------------------------------------------------------------------------ 00101 // Constructor // Destructor 00102 //------------------------------------------------------------------------ 00103 static bool m_flag; 00104 static ExManagerMesh *m_instance; 00105 ExManagerMesh(void); 00106 ~ExManagerMesh(void); 00107 //------------------------------------------------------------------------ 00108 MeshType GetMeshType(std::string FileName); 00109 public: 00110 //------------------------------------------------------------------------ 00111 // Methode 00112 //------------------------------------------------------------------------ 00113 static ExManagerMesh* CreateSingleton(void); 00114 void Reset(void); 00115 void Init(void); 00116 void Draw(void); 00117 ExNihilo::ExId Load(std::string FileName); 00118 ExNihilo::ExId Load(std::string FileName,std::string ObjectName); 00119 00120 ExCAction InputCommand(ExCCommand Command); 00121 ExCAction InputAction(ExCAction Action); 00122 inline void SetManagerTexture(ExManagerTexture * Texture){ManagerTexture = Texture;} 00123 inline void SetManagerModel(ExManagerModel *Model){ManagerModel = Model;} 00124 ExCMesh * GetObject(ExNihilo::ExId id); 00125 }; 00126 //------------------------------------------------------------------------ 00127 #endif //__EXMANAGERMESH_H__