#include "Environment/Terrain.hpp"
#include "Graphic/gamegl.hpp"
#include "Graphic/Texture.hpp"
-#include "Math/Quaternions.hpp"
+#include "Math/XYZ.hpp"
#include "Utils/binio.h"
#include <cstdio>
#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;
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);
+ 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);
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);