home *** CD-ROM | disk | FTP | other *** search
/ Superpower (Alt) / SUPERPOWER.iso / q / util / mbq319 / modelgen.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-01  |  2.3 KB  |  116 lines

  1. //
  2. // modelgen.h: header file for model generation program
  3. //
  4.  
  5. // *********************************************************
  6. // * This file must be identical in the modelgen directory *
  7. // * and in the Quake directory, because it's used to      *
  8. // * pass data from one to the other via model files.      *
  9. // *********************************************************
  10.  
  11. #ifdef INCLUDELIBS
  12.  
  13. #include <stdlib.h>
  14. #include <stdio.h>
  15. #include <math.h>
  16. #include <string.h>
  17.  
  18. #include "cmdlib.h"
  19. #include "scriplib.h"
  20. #include "trilib.h"
  21. #include "lbmlib.h"
  22. #include "mathlib.h"
  23.  
  24. #endif
  25.  
  26. #define ALIAS_VERSION    6
  27.  
  28. #define ALIAS_ONSEAM                0x0020
  29.  
  30. // must match definition in spritegn.h
  31. #ifndef SYNCTYPE_T
  32. #define SYNCTYPE_T
  33. typedef enum {ST_SYNC=0, ST_RAND } synctype_t;
  34. #endif
  35.  
  36. typedef enum { ALIAS_SINGLE=0, ALIAS_GROUP } aliasframetype_t;
  37.  
  38. typedef enum { ALIAS_SKIN_SINGLE=0, ALIAS_SKIN_GROUP } aliasskintype_t;
  39.  
  40. typedef struct {
  41.     int            ident;
  42.     int            version;
  43.     vec3_t        scale;
  44.     vec3_t        scale_origin;
  45.     float        boundingradius;
  46.     vec3_t        eyeposition;
  47.     int            numskins;
  48.     int            skinwidth;
  49.     int            skinheight;
  50.     int            numverts;
  51.     int            numtris;
  52.     int            numframes;
  53.     synctype_t    synctype;
  54.     int            flags;
  55.     float        size;
  56. } mdl_t;
  57.  
  58. // TODO: could be shorts
  59.  
  60. typedef struct {
  61.     int        onseam;
  62.     int        s;
  63.     int        t;
  64. } stvert_t;
  65.  
  66. typedef struct dtriangle_s {
  67.     int                    facesfront;
  68.     int                    vertindex[3];
  69. } dtriangle_t;
  70.  
  71. #define DT_FACES_FRONT                0x0010
  72.  
  73. // This mirrors trivert_t in trilib.h, is present so Quake knows how to
  74. // load this data
  75.  
  76. typedef struct {
  77.     byte    v[3];
  78.     byte    lightnormalindex;
  79. } trivertx_t;
  80.  
  81. typedef struct {
  82.     trivertx_t    bboxmin;    // lightnormal isn't used
  83.     trivertx_t    bboxmax;    // lightnormal isn't used
  84.     char        name[16];    // frame name from grabbing
  85. } daliasframe_t;
  86.  
  87. typedef struct {
  88.     int            numframes;
  89.     trivertx_t    bboxmin;    // lightnormal isn't used
  90.     trivertx_t    bboxmax;    // lightnormal isn't used
  91. } daliasgroup_t;
  92.  
  93. typedef struct {
  94.     int            numskins;
  95. } daliasskingroup_t;
  96.  
  97. typedef struct {
  98.     float    interval;
  99. } daliasinterval_t;
  100.  
  101. typedef struct {
  102.     float    interval;
  103. } daliasskininterval_t;
  104.  
  105. typedef struct {
  106.     aliasframetype_t    type;
  107. } daliasframetype_t;
  108.  
  109. typedef struct {
  110.     aliasskintype_t    type;
  111. } daliasskintype_t;
  112.  
  113. #define IDPOLYHEADER    (('O'<<24)+('P'<<16)+('D'<<8)+'I')
  114.                                                         // little-endian "IDPO"
  115.  
  116.