Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations  

ExManagerEntite.h

Aller à la documentation de ce fichier.
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__

Généré le Tue Dec 10 18:18:11 2002 pour ExNihilo par doxygen1.3-rc1