X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FGraphic%2FModels.hpp;h=e6dbb50030994710872572c5334d60b10396cc10;hb=6f9609cebe4bcb87a7722b628b02a1975c56148c;hp=6b907f22a913c5feb059eb929a0a188cf47e4910;hpb=801f5d9f42983fad5bdc6fab11af503a3878a33a;p=lugaru.git
diff --git a/Source/Graphic/Models.hpp b/Source/Graphic/Models.hpp
index 6b907f2..e6dbb50 100644
--- a/Source/Graphic/Models.hpp
+++ b/Source/Graphic/Models.hpp
@@ -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,9 +22,9 @@ along with Lugaru. If not, see .
#define _MODELS_HPP_
#include "Environment/Terrain.hpp"
-#include "Graphic/gamegl.hpp"
#include "Graphic/Texture.hpp"
-#include "Math/Quaternions.hpp"
+#include "Graphic/gamegl.hpp"
+#include "Math/XYZ.hpp"
#include "Utils/binio.h"
#include
@@ -35,9 +35,10 @@ along with Lugaru. If not, see .
//
// Textures List
//
-typedef struct {
+typedef struct
+{
long xsz, ysz;
- GLubyte *txt;
+ GLubyte* txt;
} 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();
@@ -117,7 +121,6 @@ public:
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 Rotate(float xang, float yang, float zang);