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 /* Benjamin Michotte Linux port, webmaster */ 00036 /* */ 00037 /* Mail :binny@ploksoftware.org */ 00038 /* */ 00039 /************************************************************************/ 00040 00041 /************************************************************************/ 00042 /* File Description */ 00043 /************************************************************************/ 00044 /* File Name :InputActionList.h */ 00045 /* */ 00046 /* Star Date :03/15/2002 */ 00047 /* */ 00048 /* Last Update : 00049 * $Id: ExManagerModele.h,v 1.11 2002/11/24 11:58:54 data Exp $ 00050 * 00051 */ 00052 00053 #ifndef __EXMANAGERMODEL_H__ 00054 #define __EXMANAGERMODEL_H__ 00055 //-------------------------------- 00056 // File to include 00057 //-------------------------------- 00058 #include "ExDefine.h" 00059 #include "ExMath.h" 00060 #include "ExManagerObject.h" 00061 #include "ExManagerTexture.h" 00062 #include "ExManagerVertexArrays.h" 00063 //-------------------------------- 00064 #include "ExCModel.h" 00065 #include "ExCModelMD2.h" 00066 #include "ExCModelMD3.h" 00067 #include "ExCModelASC.h" 00068 #include "ExCModel3DS.h" 00069 #include "ExCModelOBJ.h" 00070 //-------------------------------- 00071 class ExManagerModel : public ExManagerObject<ExCModel *> 00072 { 00073 private: 00074 //-------------------------------- 00075 // Variable 00076 //-------------------------------- 00077 ExManagerTexture *ManagerTexture; 00078 ExManagerVertexArrays *ManagerVertexArrays; 00079 std::vector<ExCModelMD2> m_VecMD2; 00080 std::vector<ExCModelMD3> m_VecMD3; 00081 std::vector<ExCModelASC> m_VecASC; 00082 std::vector<ExCModel3DS> m_Vec3DS; 00083 std::vector<ExCModelOBJ> m_VecOBJ; 00084 //std::vector<ExCModelASE> m_VecASE; 00085 00086 00087 ExNihilo::ExId LoadMD2(std::string FileName); 00088 ExNihilo::ExId LoadMD2(std::string FileName,std::string ObjectName); 00089 ExNihilo::ExId LoadMD3(std::string FileName); 00090 ExNihilo::ExId LoadMD3(std::string FileName,std::string ObjectName); 00091 ExNihilo::ExId LoadASC(std::string FileName); 00092 ExNihilo::ExId LoadASC(std::string FileName,std::string ObjectName); 00093 ExNihilo::ExId Load3DS(std::string FileName); 00094 ExNihilo::ExId Load3DS(std::string FileName,std::string ObjectName); 00095 ExNihilo::ExId LoadOBJ(std::string FileName); 00096 ExNihilo::ExId LoadOBJ(std::string FileName,std::string ObjectName); 00097 ExNihilo::ExId LoadASE(std::string FileName); 00098 ExNihilo::ExId LoadASE(std::string FileName,std::string ObjectName); 00099 //-------------------------------- 00100 // Singleton creation 00101 //-------------------------------- 00102 static bool m_flag; 00103 static ExManagerModel *m_instance; 00104 ExManagerModel(void); 00105 ~ExManagerModel(void); 00106 //-------------------------------- 00107 public: 00108 //-------------------------------- 00109 // Methode 00110 //-------------------------------- 00111 static ExManagerModel* CreateSingleton(void); 00112 ExCAction InputCommand(ExCCommand Command); 00113 ExCAction InputAction(ExCAction Action); 00114 00115 inline void SetManagerTexture(ExManagerTexture * Texture){ManagerTexture = Texture;} 00116 inline void SetManagerVertexArrays(ExManagerVertexArrays * VertexArrays){ManagerVertexArrays = VertexArrays;} 00117 void Reset(void); 00118 void Init(void); 00119 void List(void); 00120 void Draw(void); 00121 ExNihilo::ExId Load(std::string FileName); 00122 ExNihilo::ExId Load(std::string FileName,std::string ObjectName); 00123 00124 void NextFrame(void); 00125 void PreviousFrame(void); 00126 void SetCurrentFrame(int frame); 00127 ExCModel * GetObject(ExNihilo::ExId id); 00128 ExCModel* GetCurrentObject(void); 00129 }; 00130 #endif //__EXMANAGERMODEL_H__