X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FModels.h;h=e69cca93a7f7af4fcf7b39d521214de652a32151;hb=24004d6ab1e68faaf85ece11b566449997da5013;hp=a82f85d04287ec55a750fddebfb80ed5364da274;hpb=1eec4500c708d0619abf36759454f59fa175cacf;p=lugaru.git diff --git a/Source/Models.h b/Source/Models.h index a82f85d..e69cca9 100644 --- a/Source/Models.h +++ b/Source/Models.h @@ -10,7 +10,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -41,18 +41,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // Textures List // typedef struct { - long xsz,ysz; - GLubyte *txt; + long xsz, ysz; + GLubyte *txt; } ModelTexture; // // Model Structures // -class TexturedTriangle{ +class TexturedTriangle +{ public: - short vertex[3]; - float gx[3],gy[3]; + short vertex[3]; + float gx[3], gy[3]; }; #define max_model_decals 300 @@ -63,90 +64,91 @@ public: #define rawtype 2 #define decalstype 3 -class Model{ +class Model +{ public: - short vertexNum,TriangleNum; - bool hastexture; - - int type,oldtype; - - int* possible; - int* owner; - XYZ* vertex; - XYZ* normals; - XYZ* facenormals; - TexturedTriangle* Triangles; - GLfloat* vArray; - - /*int possible[max_model_vertex]; - int owner[max_textured_triangle]; - XYZ vertex[max_model_vertex]; - XYZ normals[max_model_vertex]; - XYZ facenormals[max_textured_triangle]; - TexturedTriangle Triangles[max_textured_triangle]; - GLfloat vArray[max_textured_triangle*24];*/ - - Texture textureptr; - ModelTexture modelTexture; - int numpossible; - bool color; - - XYZ boundingspherecenter; - float boundingsphereradius; - - float*** decaltexcoords; - XYZ** decalvertex; - int* decaltype; - float* decalopacity; - float* decalrotation; - float* decalalivetime; - XYZ* decalposition; - - /*float decaltexcoords[max_model_decals][3][2]; - XYZ decalvertex[max_model_decals][3]; - int decaltype[max_model_decals]; - float decalopacity[max_model_decals]; - float decalrotation[max_model_decals]; - float decalalivetime[max_model_decals]; - XYZ decalposition[max_model_decals];*/ - - int numdecals; - - bool flat; - - void DeleteDecal(int which); - void MakeDecal(int atype, XYZ *where, float *size, float *opacity, float *rotation); - void MakeDecal(int atype, XYZ where, float size, float opacity, float rotation); - void drawdecals(Texture shadowtexture,Texture bloodtexture,Texture bloodtexture2,Texture breaktexture); - int SphereCheck(XYZ *p1,float radius, XYZ *p, XYZ *move, float *rotate); - int SphereCheckPossible(XYZ *p1,float radius, XYZ *move, float *rotate); - int LineCheck(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate); - int LineCheckSlide(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate); - int LineCheckPossible(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate); - int LineCheckSlidePossible(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate); - void UpdateVertexArray(); - void UpdateVertexArrayNoTex(); - void UpdateVertexArrayNoTexNoNorm(); - bool loadnotex(const char *filename); - bool loadraw(char *filename); - bool load(const char *filename,bool texture); - bool loaddecal(const char *filename,bool texture); - void Scale(float xscale,float yscale,float zscale); - void FlipTexCoords(); - void UniformTexCoords(); - void ScaleTexCoords(float howmuch); - void ScaleNormals(float xscale,float yscale,float zscale); - void Translate(float xtrans,float ytrans,float ztrans); - void CalculateNormals(bool facenormalise); - void draw(); - void drawdifftex(GLuint texture); - void drawdifftex(Texture texture); - void drawimmediate(); - void drawdiffteximmediate(GLuint texture); - void Rotate(float xang,float yang,float zang); - ~Model(); - void deallocate(); - Model(); + short vertexNum, TriangleNum; + bool hastexture; + + int type, oldtype; + + int* possible; + int* owner; + XYZ* vertex; + XYZ* normals; + XYZ* facenormals; + TexturedTriangle* Triangles; + GLfloat* vArray; + + /*int possible[max_model_vertex]; + int owner[max_textured_triangle]; + XYZ vertex[max_model_vertex]; + XYZ normals[max_model_vertex]; + XYZ facenormals[max_textured_triangle]; + TexturedTriangle Triangles[max_textured_triangle]; + GLfloat vArray[max_textured_triangle*24];*/ + + Texture textureptr; + ModelTexture modelTexture; + int numpossible; + bool color; + + XYZ boundingspherecenter; + float boundingsphereradius; + + float*** decaltexcoords; + XYZ** decalvertex; + int* decaltype; + float* decalopacity; + float* decalrotation; + float* decalalivetime; + XYZ* decalposition; + + /*float decaltexcoords[max_model_decals][3][2]; + XYZ decalvertex[max_model_decals][3]; + int decaltype[max_model_decals]; + float decalopacity[max_model_decals]; + float decalrotation[max_model_decals]; + float decalalivetime[max_model_decals]; + XYZ decalposition[max_model_decals];*/ + + int numdecals; + + bool flat; + + void DeleteDecal(int which); + void MakeDecal(int atype, XYZ *where, float *size, float *opacity, float *rotation); + void MakeDecal(int atype, XYZ where, float size, float opacity, float rotation); + void drawdecals(Texture shadowtexture, Texture bloodtexture, Texture bloodtexture2, Texture breaktexture); + int SphereCheck(XYZ *p1, float radius, XYZ *p, XYZ *move, float *rotate); + int SphereCheckPossible(XYZ *p1, float radius, XYZ *move, float *rotate); + int LineCheck(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate); + int LineCheckSlide(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate); + int LineCheckPossible(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate); + int LineCheckSlidePossible(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate); + void UpdateVertexArray(); + void UpdateVertexArrayNoTex(); + void UpdateVertexArrayNoTexNoNorm(); + bool loadnotex(const char *filename); + bool loadraw(char *filename); + bool load(const char *filename, bool texture); + bool loaddecal(const char *filename, bool texture); + void Scale(float xscale, float yscale, float zscale); + void FlipTexCoords(); + void UniformTexCoords(); + void ScaleTexCoords(float howmuch); + void ScaleNormals(float xscale, float yscale, float zscale); + void Translate(float xtrans, float ytrans, float ztrans); + void CalculateNormals(bool facenormalise); + void draw(); + void drawdifftex(GLuint texture); + void drawdifftex(Texture texture); + void drawimmediate(); + void drawdiffteximmediate(GLuint texture); + void Rotate(float xang, float yang, float zang); + ~Model(); + void deallocate(); + Model(); }; #endif