1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#ifndef __MD2FILE_H__
#define __MD2FILE_H__
/* Copyright NVIDIA Corporation, 2000. */
/* $Id: //sw/main/apps/OpenGL/mjk/md2shader/md2file.h#10 $ */
/* Structures and constants for parsing Quake 2 ".md2" files. */
#define MD2_MAX_TRIANGLES 4096
#define MD2_MAX_VERTICES 2048
#define MD2_MAX_TEXCOORDS 2048
#define MD2_MAX_FRAMES 512
#define MD2_MAX_SKINS 32
#define MD2_MAX_FRAMESIZE (MD2_MAX_VERTICES * 4 + 128)
typedef struct {
int magic;
int version;
int skinWidth;
int skinHeight;
int frameSize;
int numSkins;
int numVertices;
int numTexCoords;
int numTriangles;
int numGlCommands;
int numFrames;
int offsetSkins;
int offsetTexCoords;
int offsetTriangles;
int offsetFrames;
int offsetGlCommands;
int offsetEnd;
} Md2Header; /* File format structure! */
typedef struct {
unsigned char vertex[3];
unsigned char lightNormalIndex;
} Md2AliasTriangleVertex;
typedef struct {
float vertex[3];
float normal[3];
} Md2TriangleVertex;
typedef struct {
short vertexIndices[3];
short textureIndices[3];
} Md2Triangle;
typedef struct {
short s, t;
} Md2TextureCoordinate;
typedef struct {
float scale[3];
float translate[3];
char name[16];
Md2AliasTriangleVertex alias_vertices[1];
} Md2AliasFrame;
typedef struct {
char name[16];
Md2TriangleVertex *vertices;
} Md2Frame;
typedef struct {
float s, t;
int vertexIndex;
} Md2CommandVertex;
#define NUMVERTEXNORMALS 162
#endif /* __MD2FILE_H__ */
|