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 :ExCModelEXM.h */ 00045 /* */ 00046 /* Star Date :03/15/2002 */ 00047 /* */ 00048 /* Last Update :06/20/2003 */ 00049 /* */ 00050 /* File Description : */ 00051 /* */ 00052 /* For update of this file check : www.ploksoftware.org */ 00053 /************************************************************************/ 00054 00055 00056 #ifndef __EXCMODELEXM_H__ 00057 #define __EXCMODELEXM_H__ 00058 //------------------------------------------------------------------------ 00059 //Includes 00060 //------------------------------------------------------------------------ 00061 #include "ExDefine.h" 00062 //------------------------------------------------------------------------ 00063 #include "Math/ExMath.h" 00064 //------------------------------------------------------------------------ 00065 #include "Object/Object3D/Model/ExCModel.h" 00066 //------------------------------------------------------------------------ 00067 #include "Object/Object3D/Gizmo/ExCGizmo.h" 00068 //------------------------------------------------------------------------ 00069 #include "Object/Object3D/Gizmo/ExCGizmoRectangle.h" 00070 //------------------------------------------------------------------------ 00071 struct ExmHeader 00072 { 00073 //Header of EXM filles; 00074 int m_Version; 00075 int m_NumberVertices; 00076 int m_NumberTexCoords; 00077 int m_NumberTriangles; 00078 int m_NumberFrames; 00079 int m_NumberTextures; 00080 00081 }; 00082 //-------------------------------- 00083 class ExCModelEXM : public ExCModel 00084 { 00085 protected: 00086 //------------------------------------------------------------------------ 00087 // Variable 00088 //------------------------------------------------------------------------ 00089 ExCModelEXM *m_pFather; //if father is null this is the main object 00090 std::vector<ExCModelEXM> *m_VecChild; //links to all child to aplly all transformation 00091 //------------------------------------------------------------------------ 00092 // Methode 00093 //------------------------------------------------------------------------ 00094 void BuilGizmoBox(void); 00095 void BuildDrawVector(void); 00096 public: 00097 00098 float *TabVertices; 00099 float *TabTextures; 00100 int m_NumberFrames; 00101 00102 std::vector<std::string> m_VecTextures; 00103 std::vector< std::pair<ExCVec3D , ExCVec3D > > m_VecTriangle; 00104 std::vector<ExCVec3D> m_VecVertex; 00105 00106 bool m_Lighting; 00107 int m_numTriangles; 00108 //-------------------------------- 00109 // Constructor // Destructor 00110 //-------------------------------- 00111 ExCModelEXM(void); 00112 ~ExCModelEXM(void); 00113 //-------------------------------- 00114 // Methode 00115 //-------------------------------- 00116 void Draw(void); 00117 bool Load(std::string FileName); 00118 }; 00119 //------------------------------------------------------------------------ 00120 #endif //__EXCMODELEXM_H__