-#define Q3MTEXTURERENDERFLAGS_NODRAW 1
-#define Q3MTEXTURERENDERFLAGS_SKY 2
-
-typedef struct q3mtexture_s
-{
- char name[Q3PATHLENGTH];
- int surfaceflags;
- int nativecontents;
- int supercontents;
- int renderflags;
-
- int number;
- skinframe_t skin;
-}
-q3mtexture_t;
-
-typedef struct q3mnode_s
-{
- //this part shared between node and leaf
- int isnode; // true
- struct q3mnode_s *parent;
- vec3_t mins;
- vec3_t maxs;
- // this part unique to nodes
- struct mplane_s *plane;
- struct q3mnode_s *children[2];
-}
-q3mnode_t;
-
-typedef struct q3mleaf_s
-{
- //this part shared between node and leaf
- int isnode; // false
- struct q3mnode_s *parent;
- vec3_t mins;
- vec3_t maxs;
- // this part unique to leafs
- int clusterindex;
- int areaindex;
- int numleaffaces;
- struct q3mface_s **firstleafface;
- int numleafbrushes;
- struct q3mbrush_s **firstleafbrush;
-}
-q3mleaf_t;
-
-typedef struct q3mmodel_s
-{
- vec3_t mins;
- vec3_t maxs;
- int numfaces;
- struct q3mface_s *firstface;
- int numbrushes;
- struct q3mbrush_s *firstbrush;
-}
-q3mmodel_t;
-
-typedef struct q3mbrush_s
-{
- struct colbrushf_s *colbrushf;
- int numbrushsides;
- struct q3mbrushside_s *firstbrushside;
- struct q3mtexture_s *texture;
-}
-q3mbrush_t;
-
-typedef struct q3mbrushside_s
-{
- struct mplane_s *plane;
- struct q3mtexture_s *texture;
-}
-q3mbrushside_t;
-
-typedef struct q3meffect_s
-{
- char shadername[Q3PATHLENGTH];
- struct q3mbrush_s *brush;
- int unknown; // 5 or -1
-}
-q3meffect_t;
-
-typedef struct q3mface_s
-{
- struct q3mtexture_s *texture;
- struct q3meffect_s *effect;
- rtexture_t *lightmaptexture;
- int collisions; // performs per triangle collisions on this surface
- int collisionmarkframe; // don't collide twice in one trace
- int type;
- int firstvertex;
- int firstelement;
- int patchsize[2];
- // used for processing
- int markframe;
- // (world only) visframe == r_framecount means it is visible this frame
- int visframe;
- // bounding box for culling
- float mins[3];
- float maxs[3];
-
- int num_vertices;
- int num_triangles;
- float *data_vertex3f;
- float *data_texcoordtexture2f;
- float *data_texcoordlightmap2f;
- float *data_svector3f;
- float *data_tvector3f;
- float *data_normal3f;
- float *data_color4f;
- int *data_element3i;
- int *data_neighbor3i;
-
- // temporary use by light processing
- int lighttemp_castshadow;
-}
-q3mface_t;
-