]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Graphic/Models.hpp
clang-format: Apply to all headers
[lugaru.git] / Source / Graphic / Models.hpp
index ecfb3dd8cb46028216f1b14155714796defe2490..e6dbb50030994710872572c5334d60b10396cc10 100644 (file)
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
@@ -22,8 +22,8 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #define _MODELS_HPP_
 
 #include "Environment/Terrain.hpp"
-#include "Graphic/gamegl.hpp"
 #include "Graphic/Texture.hpp"
+#include "Graphic/gamegl.hpp"
 #include "Math/XYZ.hpp"
 #include "Utils/binio.h"
 
@@ -35,9 +35,10 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 //
 // Textures List
 //
-typedef struct {
+typedef struct
+{
     long xsz, ysz;
-    GLubyte *txt;
+    GLubytetxt;
 } ModelTexture;
 
 //
@@ -54,19 +55,21 @@ public:
 
 #define max_model_decals 300
 
-#define nothing 0
-#define normaltype 4
-#define notextype 1
-#define rawtype 2
-#define decalstype 3
+enum ModelType
+{
+    nothing = 0,
+    notextype = 1,
+    rawtype = 2,
+    decalstype = 3,
+    normaltype = 4
+};
 
 class Model
 {
 public:
     short vertexNum;
-    bool hastexture;
 
-    int type, oldtype;
+    ModelType type;
 
     int* owner;
     XYZ* vertex;
@@ -94,14 +97,15 @@ public:
     Model();
     ~Model();
     void DeleteDecal(int which);
-    void MakeDecal(decal_type atype, XYZ *where, float *size, float *opacity, float *rotation);
+    void MakeDecal(decal_type atype, XYZ* where, float* size, float* opacity, float* rotation);
     void MakeDecal(decal_type atype, XYZ where, float size, float opacity, float rotation);
+    const XYZ& getTriangleVertex(unsigned triangleId, unsigned vertexId) const;
     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 LineCheckPossible(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate);
-    int LineCheckSlidePossible(XYZ *p1, XYZ *p2, XYZ *move, float *rotate);
+    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 LineCheckPossible(XYZ* p1, XYZ* p2, XYZ* p, XYZ* move, float* rotate);
+    int LineCheckSlidePossible(XYZ* p1, XYZ* p2, XYZ* move, float* rotate);
     void UpdateVertexArray();
     void UpdateVertexArrayNoTex();
     void UpdateVertexArrayNoTexNoNorm();