00001 /* 00002 * ExNihilo 3D Engine 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (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. See the 00012 * GNU Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 * 00018 * Please read AUTHORS file !!! 00019 * 00020 * $Id: ExManagerEntite.h,v 1.9 2002/08/12 12:24:52 data Exp $ 00021 * 00022 */ 00023 00024 #ifndef __EXMANAGERENTITE_H__ 00025 #define __EXMANAGERENTITE_H__ 00026 //-------------------------------- 00027 // File to include 00028 //-------------------------------- 00029 #include "ExDefine.h" 00030 #include "ExMath.h" 00031 //-------------------------------- 00032 #include "ExManagerTexture.h" 00033 #include "ExManagerPVS.h" 00034 #include "ExManagerCollision.h" 00035 #include "ExManagerId.h" 00036 //-------------------------------- 00037 #include "ExCEntite.h" 00038 #include "ExCComposed.h" 00039 #include "ExSkeleton.h" 00040 #include "ExCModel.h" 00041 #include "ExCModelMD2.h" 00042 #include "ExCModelMD3.h" 00043 #include "ExCModelASE.h" 00044 #include "ExCModelASC.h" 00045 #include "ExCModel3DS.h" 00046 #include "ExCModelOBJ.h" 00047 //-------------------------------- 00048 #include "ExNihiloNameSpace.h" 00049 class ExManagerEntite 00050 { 00051 private: 00052 //-------------------------------- 00053 // Variable 00054 //-------------------------------- 00055 ExManagerTexture *ManagerTexture; 00056 ExManagerPVS *ManagerPVS; 00057 ExManagerCollision *ManagerCollision; 00058 ExManagerId *ManagerId; 00059 //-------------------------------- 00060 std::vector<ExCModel *> *m_VecPModel; 00061 std::vector<ExCModel *>::iterator m_ItVecPModel; 00062 std::vector<ExCModelMD2> m_VecModelMD2; 00063 std::vector<ExCModelMD2>::iterator m_ItVecModelMD2; 00064 std::vector<ExCModelMD3> m_VecModelMD3; 00065 std::vector<ExCModelMD3>::iterator m_ItVecModelMD3; 00066 std::vector<ExCModelASE> m_VecModelASE; 00067 std::vector<ExCModelASE>::iterator m_ItVecModelASE; 00068 std::vector<ExCModelASC> m_VecModelASC; 00069 std::vector<ExCModelASC>::iterator m_ItVecModelASC; 00070 std::vector<ExCModel3DS> m_VecModel3DS; 00071 std::vector<ExCModel3DS>::iterator m_ItVecModel3DS; 00072 std::vector<ExCModelOBJ> m_VecModelOBJ; 00073 std::vector<ExCModelOBJ>::iterator m_ItVecModelOBJ; 00074 //-------------------------------- 00075 std::vector<ExCEntite *> *m_VecPObject; 00076 std::vector<ExCEntite *>::iterator m_ItVecPObject; 00077 00078 std::vector<ExCEntite> *m_VecEntite; 00079 std::vector<ExCEntite>::iterator m_ItVecEntite; 00080 00081 std::vector<ExCComposed> *m_VecComposed; 00082 std::vector<ExCComposed>::iterator m_ItVecComposed; 00083 00084 std::vector<ExSkeleton> *m_VecSkeleton; 00085 std::vector<ExSkeleton>::iterator m_ItVecSkeleton; 00086 00087 ExNihilo::ExId m_CurrentEntite; 00088 00089 void CreateVecPobject(void); 00090 public: 00091 //-------------------------------- 00092 // Constructor // Destructor 00093 //-------------------------------- 00094 ExManagerEntite(void); 00095 ~ExManagerEntite(void); 00096 //-------------------------------- 00097 // Methode 00098 //-------------------------------- 00099 std::ostrstream *Consol; 00100 00101 inline void SetManagerTexture(ExManagerTexture * Texture){ManagerTexture = Texture;} 00102 inline void SetManagerPVS(ExManagerPVS * PVS){ManagerPVS = PVS;} 00103 inline void SetManagerCollision(ExManagerCollision *Collision){ManagerCollision = Collision;} 00104 inline void SetManagerId(ExManagerId *Id){ManagerId = Id;} 00105 //-------------------------------- 00106 bool LoadModel(const char * FileName); 00107 00108 //-------------------------------- 00109 ExCEntite * GetCurrentEntite(void); 00110 void NextEntite(void); 00111 void PrevEntite(void); 00112 bool SetCurrentEntite(ExNihilo::ExId Id); 00113 00114 void Reset(void); 00115 void Init(void); 00116 bool Init(char * FileName); 00117 ExNihilo::ExId NewObject(void); 00118 ExCEntite * Get(char * Name); 00119 ExCEntite * Get(ExNihilo::ExId Id); 00120 ExNihilo::ExId Add(ExCEntite Object); 00121 ExNihilo::ExId Add(ExCComposed Object); 00122 ExNihilo::ExId Add(ExSkeleton Object); 00123 bool Remove(ExNihilo::ExId Id); 00124 00125 void MakeGlListForAll(void); 00126 void LoadAsc(const char *FileName); 00127 00128 bool SetCurrentEntiteName(const char *Name); 00129 00130 void ListEntite(void); 00131 00132 int GetNumberEntite(void){return m_VecPObject->size();} 00133 00134 inline void RecordToManagerPVS(void){ManagerPVS->SetVecEntite(m_VecPObject);} 00135 //-------------------------------- 00136 // Operator 00137 //-------------------------------- 00138 //-------------------------------- 00139 // friends 00140 //-------------------------------- 00141 00142 }; 00143 #endif //__EXMANAGERENTITE_H__