00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(AFX_TANKMESH_H__CB857C65_A22F_4FBC_9344_EFF22F8A4EEA__INCLUDED_)
00022 #define AFX_TANKMESH_H__CB857C65_A22F_4FBC_9344_EFF22F8A4EEA__INCLUDED_
00023
00024 #include <common/Vector4.h>
00025 #include <graph/ModelRendererMesh.h>
00026 #include <list>
00027
00028 class TankMesh : public ModelRendererMesh
00029 {
00030 public:
00031 TankMesh(Model &tank);
00032 virtual ~TankMesh();
00033
00034 void draw(float frame, bool drawS, float *rotMatrix, Vector &position,
00035 float fireOffSet, float rotXY, float rotXZ,
00036 bool absCenter = false, float scale = 1.0f, float fade = 1.0f,
00037 bool setState = true);
00038 int getNoTris();
00039
00040 static void drawSight();
00041 protected:
00042 enum MeshType
00043 {
00044 eNone,
00045 eTurret,
00046 eGun
00047 };
00048
00049 bool drawS_;
00050 float fireOffSet_;
00051 float scale_;
00052 float rotXY_;
00053 float rotXZ_;
00054 Vector gunOffset_;
00055 Vector turretCenter_;
00056 std::vector<MeshType> meshTypes_;
00057
00058 virtual void drawMesh(unsigned int m, Mesh *mesh, float currentFrame, bool setState);
00059 void setupTankMesh();
00060 };
00061
00062 #endif // !defined(AFX_TANKMESH_H__CB857C65_A22F_4FBC_9344_EFF22F8A4EEA__INCLUDED_)