Main Page Namespace List Class Hierarchy Alphabetical List Data Structures File List Namespace Members Data Fields Globals

# ExManagerEntite.h

Go to the documentation of this file.

    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__