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

游戏引擎

开发平台:

Visual C++

  1. // SMFNormal.cpp: implementation of the CSMFNormal class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "SMFNormal.h"
  6. //////////////////////////////////////////////////////////////////////
  7. // Construction/Destruction
  8. //////////////////////////////////////////////////////////////////////
  9. float  *CSMFNormal::m_pSMFNormal=NULL;
  10. int     CSMFNormal::m_numUser=0;
  11. CSMFNormal::CSMFNormal()
  12. {
  13. if(m_numUser==0)
  14. {
  15. m_pSMFNormal=new float [162*3];
  16. ////////////md2 normal/////////
  17.    float SMF_Normal[256][3]=
  18.    {
  19.    {-0.525731f, 0.000000f, 0.850651f}, 
  20.    {-0.442863f, 0.238856f, 0.864188f}, 
  21.    {-0.295242f, 0.000000f, 0.955423f}, 
  22.    {-0.309017f, 0.500000f, 0.809017f}, 
  23.    {-0.162460f, 0.262866f, 0.951056f}, 
  24.    {0.000000f, 0.000000f, 1.000000f}, 
  25.    {0.000000f, 0.850651f, 0.525731f}, 
  26.    {-0.147621f, 0.716567f, 0.681718f}, 
  27.    {0.147621f, 0.716567f, 0.681718f}, 
  28.    {0.000000f, 0.525731f, 0.850651f}, 
  29.    {0.309017f, 0.500000f, 0.809017f}, 
  30. {0.525731f, 0.000000f, 0.850651f}, 
  31. {0.295242f, 0.000000f, 0.955423f}, 
  32. {0.442863f, 0.238856f, 0.864188f}, 
  33. {0.162460f, 0.262866f, 0.951056f}, 
  34. {-0.681718f, 0.147621f, 0.716567f}, 
  35. {-0.809017f, 0.309017f, 0.500000f}, 
  36. {-0.587785f, 0.425325f, 0.688191f}, 
  37. {-0.850651f, 0.525731f, 0.000000f}, 
  38. {-0.864188f, 0.442863f, 0.238856f}, 
  39. {-0.716567f, 0.681718f, 0.147621f}, 
  40. {-0.688191f, 0.587785f, 0.425325f}, 
  41. {-0.500000f, 0.809017f, 0.309017f}, 
  42. {-0.238856f, 0.864188f, 0.442863f}, 
  43. {-0.425325f, 0.688191f, 0.587785f}, 
  44. {-0.716567f, 0.681718f, -0.147621f}, 
  45. {-0.500000f, 0.809017f, -0.309017f}, 
  46. {-0.525731f, 0.850651f, 0.000000f}, 
  47. {0.000000f, 0.850651f, -0.525731f}, 
  48. {-0.238856f, 0.864188f, -0.442863f}, 
  49. {0.000000f, 0.955423f, -0.295242f}, 
  50. {-0.262866f, 0.951056f, -0.162460f}, 
  51. {0.000000f, 1.000000f, 0.000000f}, 
  52. {0.000000f, 0.955423f, 0.295242f}, 
  53. {-0.262866f, 0.951056f, 0.162460f}, 
  54. {0.238856f, 0.864188f, 0.442863f}, 
  55. {0.262866f, 0.951056f, 0.162460f}, 
  56. {0.500000f, 0.809017f, 0.309017f}, 
  57. {0.238856f, 0.864188f, -0.442863f}, 
  58. {0.262866f, 0.951056f, -0.162460f}, 
  59. {0.500000f, 0.809017f, -0.309017f}, 
  60. {0.850651f, 0.525731f, 0.000000f}, 
  61. {0.716567f, 0.681718f, 0.147621f}, 
  62. {0.716567f, 0.681718f, -0.147621f}, 
  63. {0.525731f, 0.850651f, 0.000000f}, 
  64. {0.425325f, 0.688191f, 0.587785f}, 
  65. {0.864188f, 0.442863f, 0.238856f}, 
  66. {0.688191f, 0.587785f, 0.425325f}, 
  67. {0.809017f, 0.309017f, 0.500000f}, 
  68. {0.681718f, 0.147621f, 0.716567f}, 
  69. {0.587785f, 0.425325f, 0.688191f}, 
  70. {0.955423f, 0.295242f, 0.000000f}, 
  71. {1.000000f, 0.000000f, 0.000000f}, 
  72. {0.951056f, 0.162460f, 0.262866f}, 
  73. {0.850651f, -0.525731f, 0.000000f}, 
  74. {0.955423f, -0.295242f, 0.000000f}, 
  75. {0.864188f, -0.442863f, 0.238856f}, 
  76. {0.951056f, -0.162460f, 0.262866f}, 
  77. {0.809017f, -0.309017f, 0.500000f}, 
  78. {0.681718f, -0.147621f, 0.716567f}, 
  79. {0.850651f, 0.000000f, 0.525731f}, 
  80. {0.864188f, 0.442863f, -0.238856f}, 
  81. {0.809017f, 0.309017f, -0.500000f}, 
  82. {0.951056f, 0.162460f, -0.262866f}, 
  83. {0.525731f, 0.000000f, -0.850651f}, 
  84. {0.681718f, 0.147621f, -0.716567f}, 
  85. {0.681718f, -0.147621f, -0.716567f}, 
  86. {0.850651f, 0.000000f, -0.525731f}, 
  87. {0.809017f, -0.309017f, -0.500000f}, 
  88. {0.864188f, -0.442863f, -0.238856f}, 
  89. {0.951056f, -0.162460f, -0.262866f}, 
  90. {0.147621f, 0.716567f, -0.681718f}, 
  91. {0.309017f, 0.500000f, -0.809017f}, 
  92. {0.425325f, 0.688191f, -0.587785f}, 
  93. {0.442863f, 0.238856f, -0.864188f}, 
  94. {0.587785f, 0.425325f, -0.688191f}, 
  95. {0.688191f, 0.587785f, -0.425325f}, 
  96. {-0.147621f, 0.716567f, -0.681718f}, 
  97. {-0.309017f, 0.500000f, -0.809017f}, 
  98. {0.000000f, 0.525731f, -0.850651f}, 
  99. {-0.525731f, 0.000000f, -0.850651f}, 
  100. {-0.442863f, 0.238856f, -0.864188f}, 
  101. {-0.295242f, 0.000000f, -0.955423f}, 
  102. {-0.162460f, 0.262866f, -0.951056f}, 
  103. {0.000000f, 0.000000f, -1.000000f}, 
  104. {0.295242f, 0.000000f, -0.955423f}, 
  105. {0.162460f, 0.262866f, -0.951056f}, 
  106. {-0.442863f, -0.238856f, -0.864188f}, 
  107. {-0.309017f, -0.500000f, -0.809017f}, 
  108. {-0.162460f, -0.262866f, -0.951056f}, 
  109. {0.000000f, -0.850651f, -0.525731f}, 
  110. {-0.147621f, -0.716567f, -0.681718f}, 
  111. {0.147621f, -0.716567f, -0.681718f}, 
  112. {0.000000f, -0.525731f, -0.850651f}, 
  113. {0.309017f, -0.500000f, -0.809017f}, 
  114. {0.442863f, -0.238856f, -0.864188f}, 
  115. {0.162460f, -0.262866f, -0.951056f}, 
  116. {0.238856f, -0.864188f, -0.442863f}, 
  117. {0.500000f, -0.809017f, -0.309017f}, 
  118. {0.425325f, -0.688191f, -0.587785f}, 
  119. {0.716567f, -0.681718f, -0.147621f}, 
  120. {0.688191f, -0.587785f, -0.425325f}, 
  121. {0.587785f, -0.425325f, -0.688191f}, 
  122. {0.000000f, -0.955423f, -0.295242f}, 
  123. {0.000000f, -1.000000f, 0.000000f}, 
  124. {0.262866f, -0.951056f, -0.162460f}, 
  125. {0.000000f, -0.850651f, 0.525731f}, 
  126. {0.000000f, -0.955423f, 0.295242f}, 
  127. {0.238856f, -0.864188f, 0.442863f}, 
  128. {0.262866f, -0.951056f, 0.162460f}, 
  129. {0.500000f, -0.809017f, 0.309017f}, 
  130. {0.716567f, -0.681718f, 0.147621f}, 
  131. {0.525731f, -0.850651f, 0.000000f}, 
  132. {-0.238856f, -0.864188f, -0.442863f}, 
  133. {-0.500000f, -0.809017f, -0.309017f}, 
  134. {-0.262866f, -0.951056f, -0.162460f}, 
  135. {-0.850651f, -0.525731f, 0.000000f}, 
  136. {-0.716567f, -0.681718f, -0.147621f}, 
  137. {-0.716567f, -0.681718f, 0.147621f}, 
  138. {-0.525731f, -0.850651f, 0.000000f}, 
  139. {-0.500000f, -0.809017f, 0.309017f}, 
  140. {-0.238856f, -0.864188f, 0.442863f}, 
  141. {-0.262866f, -0.951056f, 0.162460f}, 
  142. {-0.864188f, -0.442863f, 0.238856f}, 
  143. {-0.809017f, -0.309017f, 0.500000f}, 
  144. {-0.688191f, -0.587785f, 0.425325f}, 
  145. {-0.681718f, -0.147621f, 0.716567f}, 
  146. {-0.442863f, -0.238856f, 0.864188f}, 
  147. {-0.587785f, -0.425325f, 0.688191f}, 
  148. {-0.309017f, -0.500000f, 0.809017f}, 
  149. {-0.147621f, -0.716567f, 0.681718f}, 
  150. {-0.425325f, -0.688191f, 0.587785f}, 
  151. {-0.162460f, -0.262866f, 0.951056f}, 
  152. {0.442863f, -0.238856f, 0.864188f}, 
  153. {0.162460f, -0.262866f, 0.951056f}, 
  154. {0.309017f, -0.500000f, 0.809017f}, 
  155. {0.147621f, -0.716567f, 0.681718f}, 
  156. {0.000000f, -0.525731f, 0.850651f}, 
  157. {0.425325f, -0.688191f, 0.587785f}, 
  158. {0.587785f, -0.425325f, 0.688191f}, 
  159. {0.688191f, -0.587785f, 0.425325f}, 
  160. {-0.955423f, 0.295242f, 0.000000f}, 
  161. {-0.951056f, 0.162460f, 0.262866f}, 
  162. {-1.000000f, 0.000000f, 0.000000f}, 
  163. {-0.850651f, 0.000000f, 0.525731f}, 
  164. {-0.955423f, -0.295242f, 0.000000f}, 
  165. {-0.951056f, -0.162460f, 0.262866f}, 
  166. {-0.864188f, 0.442863f, -0.238856f}, 
  167. {-0.951056f, 0.162460f, -0.262866f}, 
  168.    {-0.809017f, 0.309017f, -0.500000f}, 
  169.    {-0.864188f, -0.442863f, -0.238856f}, 
  170.    {-0.951056f, -0.162460f, -0.262866f}, 
  171.    {-0.809017f, -0.309017f, -0.500000f}, 
  172.    {-0.681718f, 0.147621f, -0.716567f}, 
  173.    {-0.681718f, -0.147621f, -0.716567f}, 
  174.    {-0.850651f, 0.000000f, -0.525731f}, 
  175.    {-0.688191f, 0.587785f, -0.425325f}, 
  176.    {-0.587785f, 0.425325f, -0.688191f}, 
  177.    {-0.425325f, 0.688191f, -0.587785f}, 
  178.    {-0.425325f, -0.688191f, -0.587785f}, 
  179.    {-0.587785f, -0.425325f, -0.688191f}, 
  180.    {-0.688191f, -0.587785f, -0.425325f}
  181.         };
  182.         //////////////////copy data
  183.         for(int i=0;i<162;i++)
  184.     for(int j=0;j<3;j++)
  185.     m_pSMFNormal[i*3+j]=SMF_Normal[i][j];
  186.     ///////////////////////////////
  187. }
  188. m_numUser++;
  189. }
  190. CSMFNormal::~CSMFNormal()
  191. {
  192. m_numUser--;
  193. if(m_pSMFNormal!=NULL && (m_numUser==0))
  194. {
  195. delete [] m_pSMFNormal;
  196. }
  197. }