2007-11-04 03:34:51 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
float x, y, z;
|
|
|
|
} _3DSPoint_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
short a, b, c;
|
|
|
|
short flags;
|
|
|
|
} _3DSFace_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
float s, t;
|
|
|
|
} _3DSTexVert_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
char name[100];
|
|
|
|
short numFaces;
|
|
|
|
short *pFaces;
|
|
|
|
} _3DSMeshMaterialGroup_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
char name[80];
|
|
|
|
|
|
|
|
char texture[100];
|
|
|
|
char specular[100];
|
|
|
|
char reflection[100];
|
|
|
|
char bump[100];
|
|
|
|
char opacity[100];
|
|
|
|
} _3DSMaterial_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
short numFaces, numPoints, numTexVerts;
|
|
|
|
int numMeshMaterialGroups;
|
|
|
|
|
|
|
|
_3DSPoint_t *pPoints;
|
|
|
|
_3DSFace_t *pFaces;
|
|
|
|
_3DSTexVert_t *pTexVerts;
|
|
|
|
|
|
|
|
_3DSMeshMaterialGroup_t *pMeshMaterialGroups;
|
|
|
|
} _3DSTriObject_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
char name[100];
|
|
|
|
|
|
|
|
int numTriObjects;
|
|
|
|
_3DSTriObject_t *pTriObjects;
|
|
|
|
} _3DSNamedObject_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int numNamedObjects;
|
|
|
|
int numMaterials;
|
|
|
|
|
|
|
|
_3DSNamedObject_t *pNamedObjects;
|
|
|
|
_3DSMaterial_t *pMaterials;
|
|
|
|
|
|
|
|
} _3DSEditChunk_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
_3DSEditChunk_t editChunk;
|
|
|
|
} _3DS_t;
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_NULL 0x0000
|
|
|
|
#define _3DS_CHUNK_UNKNOWN0 0x0001
|
|
|
|
#define _3DS_CHUNK_M3D_VERSION 0x0002
|
|
|
|
#define _3DS_CHUNK_M3D_KFVERSION 0x0005
|
|
|
|
#define _3DS_CHUNK_COLOR_F 0x0010
|
|
|
|
#define _3DS_CHUNK_COLOR_24 0x0011
|
|
|
|
#define _3DS_CHUNK_LIN_COLOR_24 0x0012
|
|
|
|
#define _3DS_CHUNK_LIN_COLOR_F 0x0013
|
|
|
|
#define _3DS_CHUNK_INT_PERCENTAGE 0x0030
|
|
|
|
#define _3DS_CHUNK_FLOAT_PERCENT 0x0031
|
|
|
|
#define _3DS_CHUNK_MASTER_SCALE 0x0100
|
|
|
|
#define _3DS_CHUNK_CHUNK_TYPE 0x0995
|
|
|
|
#define _3DS_CHUNK_CHUNK_UNIQUE 0x0996
|
|
|
|
#define _3DS_CHUNK_NOT_CHUNK 0x0997
|
|
|
|
#define _3DS_CHUNK_CONTAINER 0x0998
|
|
|
|
#define _3DS_CHUNK_IS_CHUNK 0x0999
|
|
|
|
#define _3DS_CHUNK_C_SXP_SELFI_MASKDATA 0x0c3c
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_BITMAP 0x1100
|
|
|
|
#define _3DS_CHUNK_USE_BITMAP 0x1101
|
|
|
|
#define _3DS_CHUNK_SOLID_BGND 0x1200
|
|
|
|
#define _3DS_CHUNK_USE_SOLID_BGND 0x1201
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_EDIT 0x3d3d
|
|
|
|
#define _3DS_CHUNK_MESH_VERSION 0x3d3e
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_NAMED_OBJECT 0x4000
|
|
|
|
#define _3DS_CHUNK_NAMED_TRI_OBJECT 0x4100
|
|
|
|
#define _3DS_CHUNK_POINT_ARRAY 0x4110
|
|
|
|
#define _3DS_CHUNK_POINT_FLAG_ARRAY 0x4111
|
|
|
|
#define _3DS_CHUNK_FACE_ARRAY 0x4120
|
|
|
|
#define _3DS_CHUNK_MSH_MAT_GROUP 0x4130
|
|
|
|
#define _3DS_CHUNK_TEX_VERTS 0x4140
|
|
|
|
#define _3DS_CHUNK_SMOOTH_GROUP 0x4150
|
|
|
|
#define _3DS_CHUNK_MESH_MATRIX 0x4160
|
|
|
|
#define _3DS_CHUNK_MAGIC 0x4d4d
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_MAT_NAME 0xa000
|
|
|
|
#define _3DS_CHUNK_TEXMAP 0xa200
|
|
|
|
#define _3DS_CHUNK_SPECMAP 0xa204
|
|
|
|
#define _3DS_CHUNK_OPACMAP 0xa210
|
|
|
|
#define _3DS_CHUNK_REFLMAP 0xa220
|
|
|
|
#define _3DS_CHUNK_BUMPMAP 0xa230
|
|
|
|
#define _3DS_CHUNK_MAT_MAPNAME 0xa300
|
|
|
|
#define _3DS_CHUNK_MAT_LIST 0xafff
|
|
|
|
|
|
|
|
#define _3DS_CHUNK_KEYFRAME_DATA 0xb000
|
|
|
|
|
|
|
|
void _3DS_LoadPolysets( const char *filename, polyset_t **ppPSET, int *numpsets, qboolean verbose );
|