home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / temacd / planearcade / planearcade.exe / Tank3.bmp / md2.h < prev    next >
C/C++ Source or Header  |  2004-01-24  |  2KB  |  84 lines

  1.  
  2.  
  3. // These are the needed defines for the max values when loading .MD2 files
  4. #define MD2_MAX_TRIANGLES        4096
  5. #define MD2_MAX_VERTICES        2048
  6. #define MD2_MAX_TEXCOORDS        2048
  7. #define MD2_MAX_FRAMES            512
  8. #define MD2_MAX_SKINS            32
  9. #define MD2_MAX_FRAMESIZE        (MD2_MAX_VERTICES * 4 + 128)
  10.  
  11.  
  12.  
  13. // This holds the header information that is read in at the beginning of the file
  14. struct tMd2Header
  15.    int magic;                    // This is used to identify the file
  16.    int version;                    // The version number of the file (Must be 8)
  17.    int skinWidth;                // The skin width in pixels
  18.    int skinHeight;                // The skin height in pixels
  19.    int frameSize;                // The size in bytes the frames are
  20.    int numSkins;                // The number of skins associated with the model
  21.    int numVertices;                // The number of vertices (constant for each frame)
  22.    int numTexCoords;            // The number of texture coordinates
  23.    int numTriangles;            // The number of faces (polygons)
  24.    int numGlCommands;            // The number of gl commands
  25.    int numFrames;                // The number of animation frames
  26.    int offsetSkins;                // The offset in the file for the skin data
  27.    int offsetTexCoords;            // The offset in the file for the texture data
  28.    int offsetTriangles;            // The offset in the file for the face data
  29.    int offsetFrames;            // The offset in the file for the frames data
  30.    int offsetGlCommands;        // The offset in the file for the gl commands data
  31.    int offsetEnd;                // The end of the file offset
  32. };
  33.  
  34.  
  35. // This is used to store the vertices that are read in for the current frame
  36. struct tMd2AliasTriangle
  37. {
  38.    byte vertex[3];
  39.    byte lightNormalIndex;
  40. };
  41.  
  42. // This stores the normals and vertices for the frames
  43. struct tMd2Triangle
  44. {
  45.    float vertex[3];
  46.    float normal[3];
  47. };
  48.  
  49. // This stores the indices into the vertex and texture coordinate arrays
  50. struct tMd2Face
  51. {
  52.    short vertexIndices[3];
  53.    short textureIndices[3];
  54. };
  55.  
  56. // This stores UV coordinates
  57. struct tMd2TexCoord
  58. {
  59.    short u, v;
  60. };
  61.  
  62. // This stores the animation scale, translation and name information for a frame, plus verts
  63. struct tMd2AliasFrame
  64. {
  65.    float scale[3];
  66.    float translate[3];
  67.    char name[16];
  68.    tMd2AliasTriangle aliasVertices[1];
  69. };
  70.  
  71. // This stores the frames vertices after they have been transformed
  72. struct tMd2Frame
  73. {
  74.    char strName[16];
  75.    tMd2Triangle *pVertices;
  76. };
  77.  
  78. // This stores a skin name
  79. typedef char tMd2Skin[64];
  80.  
  81.  
  82.  
  83.