doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Model_local.h
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 #ifndef __MODEL_LOCAL_H__
30 #define __MODEL_LOCAL_H__
31 
32 /*
33 ===============================================================================
34 
35  Static model
36 
37 ===============================================================================
38 */
39 
41 public:
42  // the inherited public interface
43  static idRenderModel * Alloc();
44 
46  virtual ~idRenderModelStatic();
47 
48  virtual void InitFromFile( const char *fileName );
49  virtual void PartialInitFromFile( const char *fileName );
50  virtual void PurgeModel();
51  virtual void Reset() {};
52  virtual void LoadModel();
53  virtual bool IsLoaded();
54  virtual void SetLevelLoadReferenced( bool referenced );
55  virtual bool IsLevelLoadReferenced();
56  virtual void TouchData();
57  virtual void InitEmpty( const char *name );
58  virtual void AddSurface( modelSurface_t surface );
59  virtual void FinishSurfaces();
60  virtual void FreeVertexCache();
61  virtual const char * Name() const;
62  virtual void Print() const;
63  virtual void List() const;
64  virtual int Memory() const;
65  virtual ID_TIME_T Timestamp() const;
66  virtual int NumSurfaces() const;
67  virtual int NumBaseSurfaces() const;
68  virtual const modelSurface_t *Surface( int surfaceNum ) const;
69  virtual srfTriangles_t * AllocSurfaceTriangles( int numVerts, int numIndexes ) const;
70  virtual void FreeSurfaceTriangles( srfTriangles_t *tris ) const;
71  virtual srfTriangles_t * ShadowHull() const;
72  virtual bool IsStaticWorldModel() const;
73  virtual dynamicModel_t IsDynamicModel() const;
74  virtual bool IsDefaultModel() const;
75  virtual bool IsReloadable() const;
76  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
77  virtual int NumJoints( void ) const;
78  virtual const idMD5Joint * GetJoints( void ) const;
79  virtual jointHandle_t GetJointHandle( const char *name ) const;
80  virtual const char * GetJointName( jointHandle_t handle ) const;
81  virtual const idJointQuat * GetDefaultPose( void ) const;
82  virtual int NearestJoint( int surfaceNum, int a, int b, int c ) const;
83  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
84  virtual void ReadFromDemoFile( class idDemoFile *f );
85  virtual void WriteToDemoFile( class idDemoFile *f );
86  virtual float DepthHack() const;
87 
88  void MakeDefaultModel();
89 
90  bool LoadASE( const char *fileName );
91  bool LoadLWO( const char *fileName );
92  bool LoadFLT( const char *fileName );
93  bool LoadMA( const char *filename );
94 
95  bool ConvertASEToModelSurfaces( const struct aseModel_s *ase );
96  bool ConvertLWOToModelSurfaces( const struct st_lwObject *lwo );
97  bool ConvertMAToModelSurfaces (const struct maModel_s *ma );
98 
99  struct aseModel_s * ConvertLWOToASE( const struct st_lwObject *obj, const char *fileName );
100 
101  bool DeleteSurfaceWithId( int id );
102  void DeleteSurfacesWithNegativeId( void );
103  bool FindSurfaceWithId( int id, int &surfaceNum );
104 
105 public:
109 
110 protected:
113 
117  bool defaulted;
118  bool purged; // eventually we will have dynamic reloading
119  bool fastLoad; // don't generate tangents and shadow data
120  bool reloadable; // if not, reloadModels won't check timestamp
121  bool levelLoadReferenced; // for determining if it needs to be freed
122  ID_TIME_T timeStamp;
123 
124  static idCVar r_mergeModelSurfaces; // combine model surfaces with the same material
125  static idCVar r_slopVertex; // merge xyz coordinates this far apart
126  static idCVar r_slopTexCoord; // merge texture coordinates this far apart
127  static idCVar r_slopNormal; // merge normals that dot less than this
128 };
129 
130 /*
131 ===============================================================================
132 
133  MD5 animated model
134 
135 ===============================================================================
136 */
137 
138 class idMD5Mesh {
139  friend class idRenderModelMD5;
140 
141 public:
142  idMD5Mesh();
143  ~idMD5Mesh();
144 
145  void ParseMesh( idLexer &parser, int numJoints, const idJointMat *joints );
146  void UpdateSurface( const struct renderEntity_s *ent, const idJointMat *joints, modelSurface_t *surf );
148  int NearestJoint( int a, int b, int c ) const;
149  int NumVerts( void ) const;
150  int NumTris( void ) const;
151  int NumWeights( void ) const;
152 
153 private:
154  idList<idVec2> texCoords; // texture coordinates
155  int numWeights; // number of weights
156  idVec4 * scaledWeights; // joint weights
157  int * weightIndex; // pairs of: joint offset + bool true if next weight is for next vertex
158  const idMaterial * shader; // material applied to mesh
159  int numTris; // number of triangles
160  struct deformInfo_s * deformInfo; // used to create srfTriangles_t from base frames and new vertexes
161  int surfaceNum; // number of the static surface created for this mesh
162 
163  void TransformVerts( idDrawVert *verts, const idJointMat *joints );
164  void TransformScaledVerts( idDrawVert *verts, const idJointMat *joints, float scale );
165 };
166 
168 public:
169  virtual void InitFromFile( const char *fileName );
170  virtual dynamicModel_t IsDynamicModel() const;
171  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
172  virtual void Print() const;
173  virtual void List() const;
174  virtual void TouchData();
175  virtual void PurgeModel();
176  virtual void LoadModel();
177  virtual int Memory() const;
178  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
179  virtual int NumJoints( void ) const;
180  virtual const idMD5Joint * GetJoints( void ) const;
181  virtual jointHandle_t GetJointHandle( const char *name ) const;
182  virtual const char * GetJointName( jointHandle_t handle ) const;
183  virtual const idJointQuat * GetDefaultPose( void ) const;
184  virtual int NearestJoint( int surfaceNum, int a, int b, int c ) const;
185 
186 private:
190 
191  void CalculateBounds( const idJointMat *joints );
192  void GetFrameBounds( const renderEntity_t *ent, idBounds &bounds ) const;
193  void DrawJoints( const renderEntity_t *ent, const struct viewDef_s *view ) const;
194  void ParseJoint( idLexer &parser, idMD5Joint *joint, idJointQuat *defaultPose );
195 };
196 
197 /*
198 ===============================================================================
199 
200  MD3 animated model
201 
202 ===============================================================================
203 */
204 
205 struct md3Header_s;
206 struct md3Surface_s;
207 
209 public:
210  virtual void InitFromFile( const char *fileName );
211  virtual dynamicModel_t IsDynamicModel() const;
212  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
213  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
214 
215 private:
216  int index; // model = tr.models[model->index]
217  int dataSize; // just for listing purposes
218  struct md3Header_s * md3; // only if type == MOD_MESH
219  int numLods;
220 
221  void LerpMeshVertexes( srfTriangles_t *tri, const struct md3Surface_s *surf, const float backlerp, const int frame, const int oldframe ) const;
222 };
223 
224 /*
225 ===============================================================================
226 
227  Liquid model
228 
229 ===============================================================================
230 */
231 
233 public:
235 
236  virtual void InitFromFile( const char *fileName );
237  virtual dynamicModel_t IsDynamicModel() const;
238  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
239  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
240 
241  virtual void Reset();
242  void IntersectBounds( const idBounds &bounds, float displacement );
243 
244 private:
245  modelSurface_t GenerateSurface( float lerp );
246  void WaterDrop( int x, int y, float *page );
247  void Update( void );
248 
249  int verts_x;
250  int verts_y;
251  float scale_x;
252  float scale_y;
253  int time;
256  int seed;
257 
259 
261  struct deformInfo_s * deformInfo; // used to create srfTriangles_t from base frames
262  // and new vertexes
263 
264  float density;
265  float drop_height;
267  float drop_delay;
268 
270  float * page1;
271  float * page2;
272 
274 
276 
277 };
278 
279 /*
280 ===============================================================================
281 
282  PRT model
283 
284 ===============================================================================
285 */
286 
288 public:
290 
291  virtual void InitFromFile( const char *fileName );
292  virtual void TouchData();
293  virtual dynamicModel_t IsDynamicModel() const;
294  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
295  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
296  virtual float DepthHack() const;
297  virtual int Memory() const;
298 
299 private:
301 };
302 
303 /*
304 ===============================================================================
305 
306  Beam model
307 
308 ===============================================================================
309 */
310 
312 public:
313  virtual dynamicModel_t IsDynamicModel() const;
314  virtual bool IsLoaded() const;
315  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
316  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
317 };
318 
319 /*
320 ===============================================================================
321 
322  Beam model
323 
324 ===============================================================================
325 */
326 #define MAX_TRAIL_PTS 20
327 
328 struct Trail_t {
330  int duration;
331 
334 };
335 
340 
341 public:
343 
344  virtual dynamicModel_t IsDynamicModel() const;
345  virtual bool IsLoaded() const;
346  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
347  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
348 
349  int NewTrail( idVec3 pt, int duration );
350  void UpdateTrail( int index, idVec3 pt );
351  void DrawTrail( int index, const struct renderEntity_s *ent, srfTriangles_t *tri, float globalAlpha );
352 };
353 
354 /*
355 ===============================================================================
356 
357  Lightning model
358 
359 ===============================================================================
360 */
361 
363 public:
364  virtual dynamicModel_t IsDynamicModel() const;
365  virtual bool IsLoaded() const;
366  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
367  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
368 };
369 
370 /*
371 ================================================================================
372 
373  idRenderModelSprite
374 
375 ================================================================================
376 */
378 public:
379  virtual dynamicModel_t IsDynamicModel() const;
380  virtual bool IsLoaded() const;
381  virtual idRenderModel * InstantiateDynamicModel( const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel );
382  virtual idBounds Bounds( const struct renderEntity_s *ent ) const;
383 };
384 
385 #endif /* !__MODEL_LOCAL_H__ */
jointHandle_t
Definition: Model.h:156
virtual int NumJoints(void) const
Definition: Model.cpp:502
virtual ~idRenderModelStatic()
Definition: Model.cpp:69
virtual const char * Name() const
Definition: Model.cpp:367
virtual const char * GetJointName(jointHandle_t handle) const
Definition: Model.cpp:529
struct deformInfo_s * deformInfo
Definition: Model_local.h:160
virtual void LoadModel()
Definition: Model_md5.cpp:491
idList< Trail_t > trails
Definition: Model_local.h:337
virtual void List() const
Definition: Model_md5.cpp:610
virtual float DepthHack() const
Definition: Model_prt.cpp:267
bool FindSurfaceWithId(int id, int &surfaceNum)
Definition: Model.cpp:2318
idList< modelSurface_t > surfaces
Definition: Model_local.h:106
int lastUpdateTime
Definition: Model_local.h:329
void TransformScaledVerts(idDrawVert *verts, const idJointMat *joints, float scale)
Definition: Model_md5.cpp:264
virtual jointHandle_t GetJointHandle(const char *name) const
Definition: Model.cpp:520
void CalculateBounds(const idJointMat *joints)
Definition: Model_md5.cpp:634
virtual const idMD5Joint * GetJoints(void) const
Definition: Model_md5.cpp:836
virtual const idMD5Joint * GetJoints(void) const
Definition: Model.cpp:511
#define MAX_TRAIL_PTS
Definition: Model_local.h:326
virtual int Memory() const
Definition: Model.cpp:111
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Model_beam.cpp:67
bool ConvertASEToModelSurfaces(const struct aseModel_s *ase)
Definition: Model.cpp:722
virtual void InitFromFile(const char *fileName)
Definition: Model.cpp:277
virtual dynamicModel_t IsDynamicModel() const
virtual void List() const
Definition: Model.cpp:138
virtual bool IsReloadable() const
Definition: Model.cpp:461
bool ConvertLWOToModelSurfaces(const struct st_lwObject *lwo)
Definition: Model.cpp:1032
virtual void PartialInitFromFile(const char *fileName)
Definition: Model.cpp:267
void LerpMeshVertexes(srfTriangles_t *tri, const struct md3Surface_s *surf, const float backlerp, const int frame, const int oldframe) const
Definition: Model_md3.cpp:222
virtual void Reset()
int surfaceNum
Definition: Model_local.h:161
virtual dynamicModel_t IsDynamicModel() const
Definition: Model_beam.cpp:49
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:4804
void ParseMesh(idLexer &parser, int numJoints, const idJointMat *joints)
Definition: Model_md5.cpp:88
idList< idMD5Joint > joints
Definition: Model_local.h:187
virtual bool IsLoaded() const
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Model.cpp:488
int numPoints
Definition: Model_local.h:333
idList< idDrawVert > verts
Definition: Model_local.h:273
GLenum GLint GLint y
Definition: glext.h:2849
virtual srfTriangles_t * AllocSurfaceTriangles(int numVerts, int numIndexes) const
Definition: Model.cpp:412
virtual const modelSurface_t * Surface(int surfaceNum) const
Definition: Model.cpp:403
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
bool LoadMA(const char *filename)
Definition: Model.cpp:1922
virtual dynamicModel_t IsDynamicModel() const
virtual void SetLevelLoadReferenced(bool referenced)
Definition: Model.cpp:2250
bool ConvertMAToModelSurfaces(const struct maModel_s *ma)
Definition: Model.cpp:1552
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Vector.h:316
virtual dynamicModel_t IsDynamicModel() const
Definition: Model.cpp:451
void TransformVerts(idDrawVert *verts, const idJointMat *joints)
Definition: Model_md5.cpp:253
virtual bool IsStaticWorldModel() const
Definition: Model.cpp:442
void GetFrameBounds(const renderEntity_t *ent, idBounds &bounds) const
void UpdateSurface(const struct renderEntity_s *ent, const idJointMat *joints, modelSurface_t *surf)
Definition: Model_md5.cpp:275
int duration
Definition: Model_local.h:330
virtual jointHandle_t GetJointHandle(const char *name) const
Definition: Model_md5.cpp:854
GLhandleARB obj
Definition: glext.h:3602
bool DeleteSurfaceWithId(int id)
Definition: Model.cpp:2283
virtual void WriteToDemoFile(class idDemoFile *f)
Definition: Model.cpp:2199
GLenum GLint x
Definition: glext.h:2849
void MakeDefaultModel()
Definition: Model.cpp:229
virtual void InitFromFile(const char *fileName)
Definition: Model_md3.cpp:48
virtual idBounds Bounds(const struct renderEntity_s *ent) const
idVec3 pts[MAX_TRAIL_PTS]
Definition: Model_local.h:332
static idCVar r_slopTexCoord
Definition: Model_local.h:126
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Model_prt.cpp:71
virtual int NearestJoint(int surfaceNum, int a, int b, int c) const
Definition: Model_md5.cpp:886
virtual void ReadFromDemoFile(class idDemoFile *f)
Definition: Model.cpp:2153
idVec4 * scaledWeights
Definition: Model_local.h:156
virtual void LoadModel()
Definition: Model.cpp:322
virtual bool IsLoaded() const
Definition: Model_beam.cpp:58
virtual idBounds Bounds(const struct renderEntity_s *ent) const
virtual void TouchData()
Definition: Model_md5.cpp:911
Definition: Lexer.h:137
virtual idBounds Bounds(const struct renderEntity_s *ent) const
Definition: Model_md5.cpp:652
virtual int Memory() const
Definition: Model_md5.cpp:940
virtual void InitEmpty(const char *name)
Definition: Model.cpp:332
static idRenderModel * Alloc()
GLuint index
Definition: glext.h:3476
const GLubyte * c
Definition: glext.h:4677
Definition: Vector.h:808
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
virtual void FinishSurfaces()
Definition: Model.cpp:580
virtual dynamicModel_t IsDynamicModel() const
void DeleteSurfacesWithNegativeId(void)
Definition: Model.cpp:2301
virtual idBounds Bounds(const struct renderEntity_s *ent) const
Definition: Model_md3.cpp:352
int NumWeights(void) const
Definition: Model_md5.cpp:427
virtual idBounds Bounds(const struct renderEntity_s *ent) const
virtual idBounds Bounds(const struct renderEntity_s *ent) const
Definition: Model_beam.cpp:194
void ParseJoint(idLexer &parser, idMD5Joint *joint, idJointQuat *defaultPose)
Definition: Model_md5.cpp:442
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Model_md3.cpp:275
virtual void InitFromFile(const char *fileName)
struct aseModel_s * ConvertLWOToASE(const struct st_lwObject *obj, const char *fileName)
Definition: Model.cpp:1385
int * weightIndex
Definition: Model_local.h:157
void WaterDrop(int x, int y, float *page)
virtual dynamicModel_t IsDynamicModel() const
Definition: Model_prt.cpp:249
virtual idBounds Bounds(const struct renderEntity_s *ent) const
Definition: Model_prt.cpp:258
virtual ID_TIME_T Timestamp() const
Definition: Model.cpp:376
virtual const idJointQuat * GetDefaultPose(void) const
Definition: Model.cpp:538
idBounds trailBounds
Definition: Model_local.h:339
virtual int NumBaseSurfaces() const
Definition: Model.cpp:394
GLubyte GLubyte GLubyte a
Definition: glext.h:4662
virtual void FreeVertexCache()
Definition: Model.cpp:2130
struct md3Header_s * md3
Definition: Model_local.h:218
bool LoadASE(const char *fileName)
Definition: Model.cpp:1880
virtual void PurgeModel()
Definition: Model_md5.cpp:928
virtual bool IsDefaultModel() const
Definition: Model.cpp:183
virtual idBounds Bounds(const struct renderEntity_s *ent) const
Definition: Model.cpp:470
int NearestJoint(int a, int b, int c) const
Definition: Model_md5.cpp:370
const idMaterial * shader
Definition: Model_local.h:158
GLubyte GLubyte b
Definition: glext.h:4662
virtual idBounds Bounds(const struct renderEntity_s *ent) const
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
virtual void InitFromFile(const char *fileName)
Definition: Model_prt.cpp:51
virtual float DepthHack() const
Definition: Model.cpp:479
virtual dynamicModel_t IsDynamicModel() const
Definition: Model_md5.cpp:818
int NumTris(void) const
Definition: Model_md5.cpp:418
tuple f
Definition: idal.py:89
void UpdateTrail(int index, idVec3 pt)
virtual void InitFromFile(const char *fileName)
Definition: Model_md5.cpp:478
dynamicModel_t
Definition: Model.h:150
void DrawTrail(int index, const struct renderEntity_s *ent, srfTriangles_t *tri, float globalAlpha)
virtual bool IsLoaded() const
const GLcharARB * name
Definition: glext.h:3629
Definition: Str.h:116
int NumVerts(void) const
Definition: Model_md5.cpp:409
void IntersectBounds(const idBounds &bounds, float displacement)
static idCVar r_slopNormal
Definition: Model_local.h:127
virtual void Print() const
Definition: Model.cpp:78
int NewTrail(idVec3 pt, int duration)
const idMaterial * shader
Definition: Model_local.h:260
idBounds CalcBounds(const idJointMat *joints)
Definition: Model_md5.cpp:354
virtual void FreeSurfaceTriangles(srfTriangles_t *tris) const
Definition: Model.cpp:424
virtual void Print() const
Definition: Model_md5.cpp:581
idList< float > pages
Definition: Model_local.h:269
virtual int NumSurfaces() const
Definition: Model.cpp:385
virtual void PurgeModel()
Definition: Model.cpp:2107
virtual void Reset()
Definition: Model_local.h:51
virtual bool IsLevelLoadReferenced()
Definition: Model.cpp:2259
virtual dynamicModel_t IsDynamicModel() const
virtual idRenderModel * InstantiateDynamicModel(const struct renderEntity_s *ent, const struct viewDef_s *view, idRenderModel *cachedModel)
Definition: Model_md5.cpp:722
virtual void TouchData()
Definition: Model_prt.cpp:61
modelSurface_t GenerateSurface(float lerp)
static idCVar r_mergeModelSurfaces
Definition: Model_local.h:124
virtual void TouchData()
Definition: Model.cpp:2268
int numWeights
Definition: Model_local.h:155
virtual const char * GetJointName(jointHandle_t handle) const
Definition: Model_md5.cpp:873
bool LoadFLT(const char *fileName)
Definition: Model.cpp:1944
virtual bool IsLoaded() const
static idCVar r_slopVertex
Definition: Model_local.h:125
Definition: List.h:84
virtual srfTriangles_t * ShadowHull() const
Definition: Model.cpp:433
virtual const idJointQuat * GetDefaultPose(void) const
Definition: Model_md5.cpp:845
srfTriangles_t * shadowHull
Definition: Model_local.h:115
virtual int NumJoints(void) const
Definition: Model_md5.cpp:827
virtual dynamicModel_t IsDynamicModel() const
Definition: Model_md3.cpp:213
struct deformInfo_s * deformInfo
Definition: Model_local.h:261
idList< idMD5Mesh > meshes
Definition: Model_local.h:189
idList< idJointQuat > defaultPose
Definition: Model_local.h:188
virtual bool IsLoaded()
Definition: Model.cpp:2241
bool LoadLWO(const char *fileName)
Definition: Model.cpp:1900
virtual int NearestJoint(int surfaceNum, int a, int b, int c) const
Definition: Model.cpp:547
virtual int Memory() const
Definition: Model_prt.cpp:276
void DrawJoints(const renderEntity_t *ent, const struct viewDef_s *view) const
Definition: Model_md5.cpp:675
idList< idVec2 > texCoords
Definition: Model_local.h:154
const idDeclParticle * particleSystem
Definition: Model_local.h:300
virtual void AddSurface(modelSurface_t surface)
Definition: Model.cpp:355