home *** CD-ROM | disk | FTP | other *** search
/ Qu-ake / Qu-ake.iso / qu_ke / utils / grafikto / 006 / MDL.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-19  |  1.3 KB  |  76 lines

  1. #ifndef __MDL_HEADER__
  2. #define __MDL_HEADER__
  3.  
  4. #include "header.h"
  5.  
  6. #define IDPO ((dword)(('O'<<24)+('P'<<16)+('D'<<8)+('I')))
  7.  
  8. typedef struct {
  9.   dword unknown;
  10.   dword width;
  11.   dword height;
  12.   byte *data;
  13. } raw_image;
  14.  
  15. typedef struct {
  16.   float x,y,z;
  17. } vector;
  18.  
  19. typedef struct {
  20.   dword onseam;
  21.   dword s;    // convert to u/v later
  22.   dword t;
  23. } tvert;
  24.  
  25. typedef struct {
  26.   dword front;
  27.   dword vert[3];
  28. } tri;
  29.  
  30. typedef struct {
  31.   byte x,y,z;  // packed coords
  32.   byte normal; // index
  33. } vert;
  34.  
  35. typedef struct {
  36.   dword unknown;
  37.   vert min;
  38.   vert max;
  39.   byte name[16];
  40.   vert *vert_ptr;
  41. } frame;
  42.  
  43. typedef struct {
  44.    dword id;
  45.    dword version;
  46.    vector scale;
  47.    vector origin;
  48.    float radius;
  49.    vector eye_pos;
  50.    dword skin_num;
  51.    dword skin_width;   // divisible by 8
  52.    dword skin_height;  // same
  53.    dword vert_num;
  54.    dword tri_num;
  55.    dword frame_num;
  56.    dword sync_type;
  57.    dword flags;
  58.    float size;
  59. } mdl_header;
  60.  
  61. typedef struct {
  62.  mdl_header head;
  63.  raw_image *rimg;
  64.  tvert *tvert_ptr;
  65.  tri *tri_ptr;
  66.  frame *frame_ptr;
  67. } mdl_object;
  68.  
  69. //
  70. word frame_info ( frame *frame_ptr, mdl_header *head );
  71. word load_mdl ( byte *filename, mdl_object *obj );
  72. word free_mdl ( mdl_object *obj );
  73.  
  74. #endif
  75.  
  76.