StructDef.h
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:3k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /////////////////structdef.h/////////////
  2. //作者:吴雪平  2002-6-17日修改
  3. //
  4. #if !defined(__STRUCT__DEFINE__)
  5. #define __STRUCT__DEFINE__
  6. //////////////////////////////////////////
  7. #define  UNKNOW        -2
  8. #define  IN_BACK_OF    -1
  9. #define  COINCIDENT     0
  10. #define  IN_FRONT_OF    1
  11. #define  SPANNING       2
  12.  
  13. #define  REVERSE        3
  14. #define  PERPENDICULAR  4
  15. #define  SHARP_ANGLE    5
  16. #define  OBTUSE_ANGLE   6 
  17. #define  OUT_POLYGON   -1
  18. #define  ON_BORDER      0
  19. #define  IN_POLYGON     1
  20. //////// Ammo define
  21. #define  M16            1
  22. #define  RIFLE          2
  23. #define  ROCKET         3
  24. #define  RIFLE_P        1
  25. #define  EXPLOSION_P    2
  26. #define  ROCKET_P       3  
  27. #define  SMOKE_P        4
  28. //////////////////////////////////////////
  29. struct VERTEX
  30. {
  31. VERTEX(){}
  32. VERTEX(float x,float y,float z){   xpos=x; ypos=y; zpos=z;} 
  33. float xpos;
  34. float ypos;
  35. float zpos;
  36. };
  37. struct NORMAL
  38. {
  39. NORMAL(){}
  40. NORMAL(float x,float y,float z){   nx=x; ny=y; nz=z;} 
  41. float nx;
  42. float ny;
  43. float nz;
  44. };
  45. struct TRIANGLE
  46. {
  47. TRIANGLE(){}
  48. TRIANGLE(VERTEX iv1,VERTEX iv2,VERTEX iv3){V1=iv1;V2=iv2;V3=iv3;}
  49. VERTEX V1;
  50. VERTEX V2;
  51. VERTEX V3;
  52. };
  53. struct QUAD
  54. {
  55. QUAD(){}
  56. QUAD(VERTEX iv1,VERTEX iv2,VERTEX iv3,VERTEX iv4){V0=iv1;V1=iv2;V2=iv3;V3=iv4;}
  57. VERTEX V0;
  58. VERTEX V1;
  59. VERTEX V2;
  60. VERTEX V3;
  61. };
  62. struct TEXCOORD
  63. {
  64. TEXCOORD(){}
  65. TEXCOORD(float iu,float iv){u=iu;v=iv;}
  66. float u;
  67. float v;
  68. };
  69. struct PLANE
  70. {
  71. PLANE(){}
  72. PLANE(float a,float b,float c,float d){A=a;B=b;C=c;D=d;}
  73. float A;
  74. float B;
  75. float C;
  76. float D;
  77. };
  78. struct TRI_FACE
  79. {
  80. VERTEX v1;
  81. VERTEX v2;
  82. VERTEX v3;
  83. TEXCOORD tex1;
  84. TEXCOORD tex2;
  85. TEXCOORD tex3;
  86. NORMAL n;
  87. float  d;  // param about face 
  88. float  powABC; // the normal length=pow (a*a+b*b+c*c ,0.5)
  89. float  powBC;//the normal length=pow (b*b+c*c ,0.5)
  90. };
  91. struct TRI_TEX
  92. {
  93.     TEXCOORD uv1;
  94.     TEXCOORD uv2;
  95.     TEXCOORD uv3;
  96. };
  97. struct COLOR
  98. {
  99. COLOR(){}
  100. COLOR(float red,float green,float blue){r=red;g=green;b=blue;}
  101. float r;
  102. float g;
  103. float b;
  104. };
  105. ////////////////////////////////////////////////
  106. struct LIGHT
  107. {
  108. VERTEX          position;
  109. COLOR           color;
  110. unsigned char   brightness;
  111. unsigned char   attenuation;
  112. unsigned char   coefficient;
  113. };
  114. struct RLM_QUAD
  115. {
  116. int   texid;
  117. PLANE plane;
  118. int   vertindex[4];
  119.     TEXCOORD texcoord[4];
  120. };
  121. struct BOUNDARY_3D
  122. {
  123.     BOUNDARY_3D()
  124. {
  125. minx=miny=minz= 9999;
  126. maxx=maxy=maxz=-9999;
  127. float minx,maxx;
  128. float miny,maxy;
  129. float minz,maxz;
  130. };
  131. struct BOUNDARY_2D
  132. {
  133.     BOUNDARY_2D()
  134. {
  135. minx=minz= 9999;
  136. maxx=maxz=-9999;
  137.     BOUNDARY_2D(int min_x,int max_x,int min_z,int max_z)
  138. {
  139. minx=min_x;
  140. maxx=max_x;
  141. minz=min_z;
  142. maxz=max_z;
  143. int minx,maxx;
  144. int minz,maxz;
  145. };
  146. ////////////////////////////////////////////////
  147. struct INPUT
  148. {
  149. bool  keys[256];
  150. bool  mouseButtons[2]; //0: left button 1:right button
  151. POINT mousePos;
  152. };
  153. struct TERRAIN_SKIN
  154. {
  155. unsigned char TextureIndex;
  156. unsigned char TextureOrder; 
  157. };
  158. struct MOVE_VERTEX
  159. {
  160. unsigned char xpos;
  161. unsigned char zpos; 
  162. };
  163. struct PARTICLE
  164. {
  165. float     life; // Particle Life
  166. float     fade; // Fade Speed
  167. float     size; // 
  168. VERTEX      pos;
  169.     NORMAL      normal;
  170. float     rotate; // X Rotate
  171. };
  172. ////////////////////////////////////////////////
  173. #endif 
  174.