PVRTModelPOD_8h-source.html 93 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  3. <title>PowerVR SDK</title>
  4. <link href="doxygen.css" rel="stylesheet" type="text/css">
  5. <link href="tabs.css" rel="stylesheet" type="text/css">
  6. <table width="100%">
  7. <tr>
  8. <td width="33%">
  9. <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
  10. </td>
  11. <td width="33%">
  12. <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
  13. </td>
  14. <td width="34%">
  15. <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
  16. </td>
  17. </tr>
  18. </table>
  19. <hr>
  20. </head><body>
  21. <!-- Generated by Doxygen 1.3.6 -->
  22. <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
  23. <h1>PVRTModelPOD.h</h1><a href="PVRTModelPOD_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span>
  24. 00002 <span class="comment"></span>
  25. 00003 <span class="comment"> @File PVRTModelPOD.h</span>
  26. 00004 <span class="comment"></span>
  27. 00005 <span class="comment"> @Title PVRTModelPOD</span>
  28. 00006 <span class="comment"></span>
  29. 00007 <span class="comment"> @Version </span>
  30. 00008 <span class="comment"></span>
  31. 00009 <span class="comment"> @Copyright Copyright (C) Imagination Technologies Limited.</span>
  32. 00010 <span class="comment"></span>
  33. 00011 <span class="comment"> @Platform ANSI compatible</span>
  34. 00012 <span class="comment"></span>
  35. 00013 <span class="comment"> @Description Code to load POD files - models exported from MAX.</span>
  36. 00014 <span class="comment"></span>
  37. 00015 <span class="comment">******************************************************************************/</span>
  38. 00016 <span class="preprocessor">#ifndef _PVRTMODELPOD_H_</span>
  39. 00017 <span class="preprocessor"></span><span class="preprocessor">#define _PVRTMODELPOD_H_</span>
  40. 00018 <span class="preprocessor"></span>
  41. 00019 <span class="preprocessor">#include "<a class="code" href="PVRTVector_8h.html">PVRTVector.h</a>"</span>
  42. 00020 <span class="preprocessor">#include "<a class="code" href="PVRTError_8h.html">PVRTError.h</a>"</span>
  43. 00021 <span class="preprocessor">#include "<a class="code" href="PVRTVertex_8h.html">PVRTVertex.h</a>"</span>
  44. 00022 <span class="preprocessor">#include "<a class="code" href="PVRTBoneBatch_8h.html">PVRTBoneBatch.h</a>"</span>
  45. 00023
  46. 00024 <span class="comment">/****************************************************************************</span>
  47. 00025 <span class="comment">** Defines</span>
  48. 00026 <span class="comment">****************************************************************************/</span>
  49. <a name="l00027"></a><a class="code" href="PVRTModelPOD_8h.html#a0">00027</a> <span class="preprocessor">#define PVRTMODELPOD_VERSION ("AB.POD.2.0") </span>
  50. 00029 <span class="preprocessor">// PVRTMODELPOD Scene Flags</span>
  51. 00030 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMODELPODSF_FIXED (0x00000001) </span>
  52. 00032 <span class="preprocessor"></span><span class="comment">/****************************************************************************</span>
  53. 00033 <span class="comment">** Enumerations</span>
  54. 00034 <span class="comment">****************************************************************************/</span>
  55. 00035 <span class="comment">/*!****************************************************************************</span>
  56. 00036 <span class="comment"> @Struct EPODLight</span>
  57. 00037 <span class="comment"> @Brief Enum for the POD format light types</span>
  58. 00038 <span class="comment">******************************************************************************/</span>
  59. 00039 <span class="keyword">enum</span> <a class="code" href="structEPODLight.html">EPODLight</a>
  60. 00040 {
  61. <a name="l00041"></a><a class="code" href="PVRTModelPOD_8h.html#a55">00041</a> <a class="code" href="PVRTModelPOD_8h.html#a55a2">ePODPoint</a>=0,
  62. 00042 <a class="code" href="PVRTModelPOD_8h.html#a55a3">ePODDirectional</a>,
  63. 00043 <a class="code" href="PVRTModelPOD_8h.html#a55a4">ePODSpot</a>
  64. 00044 };
  65. 00045
  66. 00046 <span class="comment">/*!****************************************************************************</span>
  67. 00047 <span class="comment"> @Struct EPODPrimitiveType</span>
  68. 00048 <span class="comment"> @Brief Enum for the POD format primitive types</span>
  69. 00049 <span class="comment">******************************************************************************/</span>
  70. 00050 <span class="keyword">enum</span> <a class="code" href="structEPODPrimitiveType.html">EPODPrimitiveType</a>
  71. 00051 {
  72. <a name="l00052"></a><a class="code" href="PVRTModelPOD_8h.html#a56">00052</a> <a class="code" href="PVRTModelPOD_8h.html#a56a5">ePODTriangles</a>=0,
  73. 00053 <a class="code" href="PVRTModelPOD_8h.html#a56a6">ePODLines</a>
  74. 00054 };
  75. 00055
  76. 00056 <span class="comment">/*!****************************************************************************</span>
  77. 00057 <span class="comment"> @Struct EPODAnimationData</span>
  78. 00058 <span class="comment"> @Brief Enum for the POD format animation types</span>
  79. 00059 <span class="comment">******************************************************************************/</span>
  80. 00060 <span class="keyword">enum</span> <a class="code" href="structEPODAnimationData.html">EPODAnimationData</a>
  81. 00061 {
  82. <a name="l00062"></a><a class="code" href="PVRTModelPOD_8h.html#a57">00062</a> <a class="code" href="PVRTModelPOD_8h.html#a57a7">ePODHasPositionAni</a> = 0x01,
  83. 00063 <a class="code" href="PVRTModelPOD_8h.html#a57a8">ePODHasRotationAni</a> = 0x02,
  84. 00064 <a class="code" href="PVRTModelPOD_8h.html#a57a9">ePODHasScaleAni</a> = 0x04,
  85. 00065 <a class="code" href="PVRTModelPOD_8h.html#a57a10">ePODHasMatrixAni</a> = 0x08
  86. 00066 };
  87. 00067
  88. 00068 <span class="comment">/*!****************************************************************************</span>
  89. 00069 <span class="comment"> @Struct EPODMaterialFlags</span>
  90. 00070 <span class="comment"> @Brief Enum for the material flag options</span>
  91. 00071 <span class="comment">******************************************************************************/</span>
  92. 00072 <span class="keyword">enum</span> <a class="code" href="structEPODMaterialFlags.html">EPODMaterialFlags</a>
  93. 00073 {
  94. <a name="l00074"></a><a class="code" href="PVRTModelPOD_8h.html#a58">00074</a> <a class="code" href="PVRTModelPOD_8h.html#a58a11">ePODEnableBlending</a> = 0x01,
  95. 00075 };
  96. 00076
  97. 00077 <span class="comment">/*!****************************************************************************</span>
  98. 00078 <span class="comment"> @Struct EPODBlendFunc</span>
  99. 00079 <span class="comment"> @Brief Enum for the POD format blend functions</span>
  100. 00080 <span class="comment">******************************************************************************/</span>
  101. 00081 <span class="keyword">enum</span> <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>
  102. 00082 {
  103. <a name="l00083"></a><a class="code" href="PVRTModelPOD_8h.html#a59">00083</a> <a class="code" href="PVRTModelPOD_8h.html#a59a12">ePODBlendFunc_ZERO</a>=0,
  104. 00084 <a class="code" href="PVRTModelPOD_8h.html#a59a13">ePODBlendFunc_ONE</a>,
  105. 00085 <a class="code" href="PVRTModelPOD_8h.html#a59a14">ePODBlendFunc_BLEND_FACTOR</a>,
  106. 00086 <a class="code" href="PVRTModelPOD_8h.html#a59a15">ePODBlendFunc_ONE_MINUS_BLEND_FACTOR</a>,
  107. 00087
  108. 00088 <a class="code" href="PVRTModelPOD_8h.html#a59a16">ePODBlendFunc_SRC_COLOR</a> = 0x0300,
  109. 00089 <a class="code" href="PVRTModelPOD_8h.html#a59a17">ePODBlendFunc_ONE_MINUS_SRC_COLOR</a>,
  110. 00090 <a class="code" href="PVRTModelPOD_8h.html#a59a18">ePODBlendFunc_SRC_ALPHA</a>,
  111. 00091 <a class="code" href="PVRTModelPOD_8h.html#a59a19">ePODBlendFunc_ONE_MINUS_SRC_ALPHA</a>,
  112. 00092 <a class="code" href="PVRTModelPOD_8h.html#a59a20">ePODBlendFunc_DST_ALPHA</a>,
  113. 00093 <a class="code" href="PVRTModelPOD_8h.html#a59a21">ePODBlendFunc_ONE_MINUS_DST_ALPHA</a>,
  114. 00094 <a class="code" href="PVRTModelPOD_8h.html#a59a22">ePODBlendFunc_DST_COLOR</a>,
  115. 00095 <a class="code" href="PVRTModelPOD_8h.html#a59a23">ePODBlendFunc_ONE_MINUS_DST_COLOR</a>,
  116. 00096 <a class="code" href="PVRTModelPOD_8h.html#a59a24">ePODBlendFunc_SRC_ALPHA_SATURATE</a>,
  117. 00097
  118. 00098 <a class="code" href="PVRTModelPOD_8h.html#a59a25">ePODBlendFunc_CONSTANT_COLOR</a> = 0x8001,
  119. 00099 <a class="code" href="PVRTModelPOD_8h.html#a59a26">ePODBlendFunc_ONE_MINUS_CONSTANT_COLOR</a>,
  120. 00100 <a class="code" href="PVRTModelPOD_8h.html#a59a27">ePODBlendFunc_CONSTANT_ALPHA</a>,
  121. 00101 <a class="code" href="PVRTModelPOD_8h.html#a59a28">ePODBlendFunc_ONE_MINUS_CONSTANT_ALPHA</a>
  122. 00102 };
  123. 00103
  124. 00104 <span class="comment">/*!****************************************************************************</span>
  125. 00105 <span class="comment"> @Struct EPODBlendOp</span>
  126. 00106 <span class="comment"> @Brief Enum for the POD format blend operation</span>
  127. 00107 <span class="comment">******************************************************************************/</span>
  128. 00108 <span class="keyword">enum</span> <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a>
  129. 00109 {
  130. <a name="l00110"></a><a class="code" href="PVRTModelPOD_8h.html#a60">00110</a> <a class="code" href="PVRTModelPOD_8h.html#a60a29">ePODBlendOp_ADD</a> = 0x8006,
  131. 00111 <a class="code" href="PVRTModelPOD_8h.html#a60a30">ePODBlendOp_MIN</a>,
  132. 00112 <a class="code" href="PVRTModelPOD_8h.html#a60a31">ePODBlendOp_MAX</a>,
  133. 00113 <a class="code" href="PVRTModelPOD_8h.html#a60a32">ePODBlendOp_SUBTRACT</a> = 0x800A,
  134. 00114 <a class="code" href="PVRTModelPOD_8h.html#a60a33">ePODBlendOp_REVERSE_SUBTRACT</a>,
  135. 00115 };
  136. 00116
  137. 00117 <span class="comment">/****************************************************************************</span>
  138. 00118 <span class="comment">** Structures</span>
  139. 00119 <span class="comment">****************************************************************************/</span>
  140. 00120 <span class="comment">/*!****************************************************************************</span>
  141. 00121 <span class="comment"> @Class CPODData</span>
  142. 00122 <span class="comment"> @Brief A class for representing POD data</span>
  143. 00123 <span class="comment">******************************************************************************/</span>
  144. 00124 <span class="keyword">class </span><a class="code" href="classCPODData.html">CPODData</a> {
  145. 00125 <span class="keyword">public</span>:
  146. <a name="l00126"></a><a class="code" href="classCPODData.html">00126</a> <span class="comment">/*!***************************************************************************</span>
  147. 00127 <span class="comment"> @Function Reset</span>
  148. 00128 <span class="comment"> @Description Resets the POD Data to NULL</span>
  149. 00129 <span class="comment"> *****************************************************************************/</span>
  150. 00130 <span class="keywordtype">void</span> <a class="code" href="classCPODData.html#a0">Reset</a>();
  151. 00131
  152. 00132 <span class="keyword">public</span>:
  153. 00133 <a class="code" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> <a class="code" href="classCPODData.html#o0">eType</a>;
  154. 00134 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n;
  155. 00135 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCPODData.html#o2">nStride</a>;
  156. <a name="l00136"></a><a class="code" href="classCPODData.html#o0">00136</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="classCPODData.html#o3">pData</a>;
  157. <a name="l00137"></a><a class="code" href="classCPODData.html#o1">00137</a> };
  158. <a name="l00138"></a><a class="code" href="classCPODData.html#o2">00138</a>
  159. <a name="l00139"></a><a class="code" href="classCPODData.html#o3">00139</a> <span class="comment">/*!****************************************************************************</span>
  160. 00140 <span class="comment"> @Struct SPODCamera</span>
  161. 00141 <span class="comment"> @Brief Struct for storing POD camera data</span>
  162. 00142 <span class="comment">******************************************************************************/</span>
  163. 00143 <span class="keyword">struct </span><a class="code" href="structSPODCamera.html">SPODCamera</a> {
  164. 00144 <span class="keywordtype">int</span> nIdxTarget;
  165. 00145 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> fFOV;
  166. <a name="l00146"></a><a class="code" href="structSPODCamera.html">00146</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODCamera.html#o2">fFar</a>;
  167. <a name="l00147"></a><a class="code" href="structSPODCamera.html#o0">00147</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODCamera.html#o3">fNear</a>;
  168. <a name="l00148"></a><a class="code" href="structSPODCamera.html#o1">00148</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> *<a class="code" href="structSPODCamera.html#o4">pfAnimFOV</a>;
  169. <a name="l00149"></a><a class="code" href="structSPODCamera.html#o2">00149</a> };
  170. <a name="l00150"></a><a class="code" href="structSPODCamera.html#o3">00150</a>
  171. <a name="l00151"></a><a class="code" href="structSPODCamera.html#o4">00151</a> <span class="comment">/*!****************************************************************************</span>
  172. 00152 <span class="comment"> @Struct SPODLight</span>
  173. 00153 <span class="comment"> @Brief Struct for storing POD light data</span>
  174. 00154 <span class="comment">******************************************************************************/</span>
  175. 00155 <span class="keyword">struct </span><a class="code" href="structSPODLight.html">SPODLight</a> {
  176. 00156 <span class="keywordtype">int</span> <a class="code" href="structSPODLight.html#o0">nIdxTarget</a>;
  177. 00157 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> pfColour[3];
  178. <a name="l00158"></a><a class="code" href="structSPODLight.html">00158</a> <a class="code" href="structEPODLight.html">EPODLight</a> eType;
  179. <a name="l00159"></a><a class="code" href="structSPODLight.html#o0">00159</a> <span class="keywordtype">float</span> <a class="code" href="structSPODLight.html#o3">fConstantAttenuation</a>;
  180. <a name="l00160"></a><a class="code" href="structSPODLight.html#o1">00160</a> <span class="keywordtype">float</span> <a class="code" href="structSPODLight.html#o4">fLinearAttenuation</a>;
  181. <a name="l00161"></a><a class="code" href="structSPODLight.html#o2">00161</a> <span class="keywordtype">float</span> <a class="code" href="structSPODLight.html#o5">fQuadraticAttenuation</a>;
  182. <a name="l00162"></a><a class="code" href="structSPODLight.html#o3">00162</a> <span class="keywordtype">float</span> <a class="code" href="structSPODLight.html#o6">fFalloffAngle</a>;
  183. <a name="l00163"></a><a class="code" href="structSPODLight.html#o4">00163</a> <span class="keywordtype">float</span> <a class="code" href="structSPODLight.html#o7">fFalloffExponent</a>;
  184. <a name="l00164"></a><a class="code" href="structSPODLight.html#o5">00164</a> };
  185. <a name="l00165"></a><a class="code" href="structSPODLight.html#o6">00165</a>
  186. <a name="l00166"></a><a class="code" href="structSPODLight.html#o7">00166</a> <span class="comment">/*!****************************************************************************</span>
  187. 00167 <span class="comment"> @Struct SPODMesh</span>
  188. 00168 <span class="comment"> @Brief Struct for storing POD mesh data</span>
  189. 00169 <span class="comment">******************************************************************************/</span>
  190. 00170 <span class="keyword">struct </span><a class="code" href="structSPODMesh.html">SPODMesh</a> {
  191. 00171 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nNumVertex;
  192. 00172 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nNumFaces;
  193. <a name="l00173"></a><a class="code" href="structSPODMesh.html">00173</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODMesh.html#o2">nNumUVW</a>;
  194. <a name="l00174"></a><a class="code" href="structSPODMesh.html#o0">00174</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o3">sFaces</a>;
  195. <a name="l00175"></a><a class="code" href="structSPODMesh.html#o1">00175</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *<a class="code" href="structSPODMesh.html#o4">pnStripLength</a>;
  196. <a name="l00176"></a><a class="code" href="structSPODMesh.html#o2">00176</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nNumStrips;
  197. <a name="l00177"></a><a class="code" href="structSPODMesh.html#o3">00177</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o6">sVertex</a>;
  198. <a name="l00178"></a><a class="code" href="structSPODMesh.html#o4">00178</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o7">sNormals</a>;
  199. <a name="l00179"></a><a class="code" href="structSPODMesh.html#o5">00179</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o8">sTangents</a>;
  200. <a name="l00180"></a><a class="code" href="structSPODMesh.html#o6">00180</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o9">sBinormals</a>;
  201. <a name="l00181"></a><a class="code" href="structSPODMesh.html#o7">00181</a> <a class="code" href="classCPODData.html">CPODData</a> *<a class="code" href="structSPODMesh.html#o10">psUVW</a>;
  202. <a name="l00182"></a><a class="code" href="structSPODMesh.html#o8">00182</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o11">sVtxColours</a>;
  203. <a name="l00183"></a><a class="code" href="structSPODMesh.html#o9">00183</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o12">sBoneIdx</a>;
  204. <a name="l00184"></a><a class="code" href="structSPODMesh.html#o10">00184</a> <a class="code" href="classCPODData.html">CPODData</a> <a class="code" href="structSPODMesh.html#o13">sBoneWeight</a>;
  205. <a name="l00186"></a><a class="code" href="structSPODMesh.html#o12">00186</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structSPODMesh.html#o14">pInterleaved</a>;
  206. 00188 <a class="code" href="classCPVRTBoneBatches.html">CPVRTBoneBatches</a> <a class="code" href="structSPODMesh.html#o15">sBoneBatches</a>;
  207. 00190 <a class="code" href="structEPODPrimitiveType.html">EPODPrimitiveType</a> <a class="code" href="structSPODMesh.html#o16">ePrimitiveType</a>;
  208. 00192 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> <a class="code" href="structSPODMesh.html#o17">mUnpackMatrix</a>;
  209. <a name="l00193"></a><a class="code" href="structSPODMesh.html#o16">00193</a> };
  210. 00194
  211. <a name="l00195"></a><a class="code" href="structSPODMesh.html#o17">00195</a> <span class="comment">/*!****************************************************************************</span>
  212. 00196 <span class="comment"> @Struct SPODNode</span>
  213. 00197 <span class="comment"> @Brief Struct for storing POD node data</span>
  214. 00198 <span class="comment">******************************************************************************/</span>
  215. 00199 <span class="keyword">struct </span><a class="code" href="structSPODNode.html">SPODNode</a> {
  216. 00200 <span class="keywordtype">int</span> nIdx;
  217. 00201 <span class="keywordtype">char</span> *pszName;
  218. <a name="l00202"></a><a class="code" href="structSPODNode.html">00202</a> <span class="keywordtype">int</span> <a class="code" href="structSPODNode.html#o2">nIdxMaterial</a>;
  219. <a name="l00204"></a><a class="code" href="structSPODNode.html#o1">00204</a> <span class="keywordtype">int</span> <a class="code" href="structSPODNode.html#o3">nIdxParent</a>;
  220. 00206 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODNode.html#o4">nAnimFlags</a>;
  221. 00208 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o5">pnAnimPositionIdx</a>;
  222. <a name="l00209"></a><a class="code" href="structSPODNode.html#o4">00209</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> *<a class="code" href="structSPODNode.html#o6">pfAnimPosition</a>;
  223. <a name="l00211"></a><a class="code" href="structSPODNode.html#o5">00211</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o7">pnAnimRotationIdx</a>;
  224. <a name="l00212"></a><a class="code" href="structSPODNode.html#o6">00212</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> *<a class="code" href="structSPODNode.html#o8">pfAnimRotation</a>;
  225. <a name="l00214"></a><a class="code" href="structSPODNode.html#o7">00214</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o9">pnAnimScaleIdx</a>;
  226. <a name="l00215"></a><a class="code" href="structSPODNode.html#o8">00215</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> *<a class="code" href="structSPODNode.html#o10">pfAnimScale</a>;
  227. <a name="l00217"></a><a class="code" href="structSPODNode.html#o9">00217</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o11">pnAnimMatrixIdx</a>;
  228. <a name="l00218"></a><a class="code" href="structSPODNode.html#o10">00218</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> *<a class="code" href="structSPODNode.html#o12">pfAnimMatrix</a>;
  229. 00219 };
  230. <a name="l00220"></a><a class="code" href="structSPODNode.html#o11">00220</a>
  231. <a name="l00221"></a><a class="code" href="structSPODNode.html#o12">00221</a> <span class="comment">/*!****************************************************************************</span>
  232. 00222 <span class="comment"> @Struct SPODTexture</span>
  233. 00223 <span class="comment"> @Brief Struct for storing POD texture data</span>
  234. 00224 <span class="comment">******************************************************************************/</span>
  235. 00225 <span class="keyword">struct </span><a class="code" href="structSPODTexture.html">SPODTexture</a> {
  236. 00226 <span class="keywordtype">char</span> *<a class="code" href="structSPODTexture.html#o0">pszName</a>;
  237. 00227 };
  238. <a name="l00228"></a><a class="code" href="structSPODTexture.html">00228</a>
  239. <a name="l00229"></a><a class="code" href="structSPODTexture.html#o0">00229</a> <span class="comment">/*!****************************************************************************</span>
  240. 00230 <span class="comment"> @Struct SPODMaterial</span>
  241. 00231 <span class="comment"> @Brief Struct for storing POD material data</span>
  242. 00232 <span class="comment">******************************************************************************/</span>
  243. 00233 <span class="keyword">struct </span><a class="code" href="structSPODMaterial.html">SPODMaterial</a> {
  244. 00234 <span class="keywordtype">char</span> *pszName;
  245. 00235 <span class="keywordtype">int</span> nIdxTexDiffuse;
  246. <a name="l00236"></a><a class="code" href="structSPODMaterial.html">00236</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o2">nIdxTexAmbient</a>;
  247. <a name="l00237"></a><a class="code" href="structSPODMaterial.html#o0">00237</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o3">nIdxTexSpecularColour</a>;
  248. <a name="l00238"></a><a class="code" href="structSPODMaterial.html#o1">00238</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o4">nIdxTexSpecularLevel</a>;
  249. <a name="l00239"></a><a class="code" href="structSPODMaterial.html#o2">00239</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o5">nIdxTexBump</a>;
  250. <a name="l00240"></a><a class="code" href="structSPODMaterial.html#o3">00240</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o6">nIdxTexEmissive</a>;
  251. <a name="l00241"></a><a class="code" href="structSPODMaterial.html#o4">00241</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o7">nIdxTexGlossiness</a>;
  252. <a name="l00242"></a><a class="code" href="structSPODMaterial.html#o5">00242</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o8">nIdxTexOpacity</a>;
  253. <a name="l00243"></a><a class="code" href="structSPODMaterial.html#o6">00243</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o9">nIdxTexReflection</a>;
  254. <a name="l00244"></a><a class="code" href="structSPODMaterial.html#o7">00244</a> <span class="keywordtype">int</span> <a class="code" href="structSPODMaterial.html#o10">nIdxTexRefraction</a>;
  255. <a name="l00245"></a><a class="code" href="structSPODMaterial.html#o8">00245</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o11">fMatOpacity</a>;
  256. <a name="l00246"></a><a class="code" href="structSPODMaterial.html#o9">00246</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o12">pfMatAmbient</a>[3];
  257. <a name="l00247"></a><a class="code" href="structSPODMaterial.html#o10">00247</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o13">pfMatDiffuse</a>[3];
  258. <a name="l00248"></a><a class="code" href="structSPODMaterial.html#o11">00248</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o14">pfMatSpecular</a>[3];
  259. <a name="l00249"></a><a class="code" href="structSPODMaterial.html#o12">00249</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o15">fMatShininess</a>;
  260. <a name="l00250"></a><a class="code" href="structSPODMaterial.html#o13">00250</a> <span class="keywordtype">char</span> *<a class="code" href="structSPODMaterial.html#o16">pszEffectFile</a>;
  261. <a name="l00251"></a><a class="code" href="structSPODMaterial.html#o14">00251</a> <span class="keywordtype">char</span> *<a class="code" href="structSPODMaterial.html#o17">pszEffectName</a>;
  262. <a name="l00253"></a><a class="code" href="structSPODMaterial.html#o16">00253</a> <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a> <a class="code" href="structSPODMaterial.html#o18">eBlendSrcRGB</a>;
  263. <a name="l00254"></a><a class="code" href="structSPODMaterial.html#o17">00254</a> <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a> <a class="code" href="structSPODMaterial.html#o19">eBlendSrcA</a>;
  264. 00255 <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a> <a class="code" href="structSPODMaterial.html#o20">eBlendDstRGB</a>;
  265. <a name="l00256"></a><a class="code" href="structSPODMaterial.html#o18">00256</a> <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a> <a class="code" href="structSPODMaterial.html#o21">eBlendDstA</a>;
  266. <a name="l00257"></a><a class="code" href="structSPODMaterial.html#o19">00257</a> <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a> <a class="code" href="structSPODMaterial.html#o22">eBlendOpRGB</a>;
  267. <a name="l00258"></a><a class="code" href="structSPODMaterial.html#o20">00258</a> <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a> <a class="code" href="structSPODMaterial.html#o23">eBlendOpA</a>;
  268. <a name="l00259"></a><a class="code" href="structSPODMaterial.html#o21">00259</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o24">pfBlendColour</a>[4];
  269. <a name="l00260"></a><a class="code" href="structSPODMaterial.html#o22">00260</a> <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="structSPODMaterial.html#o25">pfBlendFactor</a>[4];
  270. <a name="l00262"></a><a class="code" href="structSPODMaterial.html#o24">00262</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFlags;
  271. <a name="l00263"></a><a class="code" href="structSPODMaterial.html#o25">00263</a> };
  272. 00264
  273. <a name="l00265"></a><a class="code" href="structSPODMaterial.html#o26">00265</a> <span class="comment">/*!****************************************************************************</span>
  274. 00266 <span class="comment"> @Struct SPODScene</span>
  275. 00267 <span class="comment"> @Brief Struct for storing POD scene data</span>
  276. 00268 <span class="comment">******************************************************************************/</span>
  277. 00269 <span class="keyword">struct </span><a class="code" href="structSPODScene.html">SPODScene</a> {
  278. 00270 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> pfColourBackground[3];
  279. 00271 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> pfColourAmbient[3];
  280. <a name="l00273"></a><a class="code" href="structSPODScene.html#o0">00273</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o2">nNumCamera</a>;
  281. <a name="l00274"></a><a class="code" href="structSPODScene.html#o1">00274</a> <a class="code" href="structSPODCamera.html">SPODCamera</a> *<a class="code" href="structSPODScene.html#o3">pCamera</a>;
  282. <a name="l00276"></a><a class="code" href="structSPODScene.html#o2">00276</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o4">nNumLight</a>;
  283. <a name="l00277"></a><a class="code" href="structSPODScene.html#o3">00277</a> <a class="code" href="structSPODLight.html">SPODLight</a> *<a class="code" href="structSPODScene.html#o5">pLight</a>;
  284. <a name="l00279"></a><a class="code" href="structSPODScene.html#o4">00279</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o6">nNumMesh</a>;
  285. <a name="l00280"></a><a class="code" href="structSPODScene.html#o5">00280</a> <a class="code" href="structSPODMesh.html">SPODMesh</a> *<a class="code" href="structSPODScene.html#o7">pMesh</a>;
  286. <a name="l00282"></a><a class="code" href="structSPODScene.html#o6">00282</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o8">nNumNode</a>;
  287. <a name="l00283"></a><a class="code" href="structSPODScene.html#o7">00283</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o9">nNumMeshNode</a>;
  288. 00284 <a class="code" href="structSPODNode.html">SPODNode</a> *<a class="code" href="structSPODScene.html#o10">pNode</a>;
  289. <a name="l00286"></a><a class="code" href="structSPODScene.html#o9">00286</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o11">nNumTexture</a>;
  290. <a name="l00287"></a><a class="code" href="structSPODScene.html#o10">00287</a> <a class="code" href="structSPODTexture.html">SPODTexture</a> *<a class="code" href="structSPODScene.html#o12">pTexture</a>;
  291. <a name="l00289"></a><a class="code" href="structSPODScene.html#o11">00289</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o13">nNumMaterial</a>;
  292. <a name="l00290"></a><a class="code" href="structSPODScene.html#o12">00290</a> <a class="code" href="structSPODMaterial.html">SPODMaterial</a> *<a class="code" href="structSPODScene.html#o14">pMaterial</a>;
  293. <a name="l00292"></a><a class="code" href="structSPODScene.html#o13">00292</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o15">nNumFrame</a>;
  294. <a name="l00293"></a><a class="code" href="structSPODScene.html#o14">00293</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODScene.html#o16">nFPS</a>;
  295. <a name="l00295"></a><a class="code" href="structSPODScene.html#o15">00295</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFlags;
  296. <a name="l00296"></a><a class="code" href="structSPODScene.html#o16">00296</a> };
  297. 00297
  298. <a name="l00298"></a><a class="code" href="structSPODScene.html#o17">00298</a> <span class="keyword">struct </span>SPVRTPODImpl; <span class="comment">// Internal implementation data</span>
  299. 00299
  300. 00300 <span class="comment">/*!***************************************************************************</span>
  301. 00301 <span class="comment">@Class CPVRTModelPOD</span>
  302. 00302 <span class="comment">@Brief A class for loading and storing data from POD files/headers</span>
  303. 00303 <span class="comment">*****************************************************************************/</span>
  304. 00304 <span class="keyword">class </span><a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> : <span class="keyword">public</span> <a class="code" href="structSPODScene.html">SPODScene</a>{
  305. 00305 <span class="keyword">public</span>:
  306. 00306 <span class="comment">/*!***************************************************************************</span>
  307. <a name="l00307"></a><a class="code" href="classCPVRTModelPOD.html">00307</a> <span class="comment"> @Function Constructor</span>
  308. 00308 <span class="comment"> @Description Constructor for CPVRTModelPOD class</span>
  309. 00309 <span class="comment"> *****************************************************************************/</span>
  310. 00310 <a class="code" href="classCPVRTModelPOD.html#a0">CPVRTModelPOD</a>();
  311. 00311
  312. 00312 <span class="comment">/*!***************************************************************************</span>
  313. 00313 <span class="comment"> @Function Destructor</span>
  314. 00314 <span class="comment"> @Description Destructor for CPVRTModelPOD class</span>
  315. 00315 <span class="comment"> *****************************************************************************/</span>
  316. 00316 <a class="code" href="classCPVRTModelPOD.html#a1">~CPVRTModelPOD</a>();
  317. 00317
  318. 00318 <span class="comment">/*!***************************************************************************</span>
  319. 00319 <span class="comment"> @Function ReadFromFile</span>
  320. 00320 <span class="comment"> @Input pszFileName Filename to load</span>
  321. 00321 <span class="comment"> @Output pszExpOpt String in which to place exporter options</span>
  322. 00322 <span class="comment"> @Input count Maximum number of characters to store.</span>
  323. 00323 <span class="comment"> @Output pszHistory String in which to place the pod file history</span>
  324. 00324 <span class="comment"> @Input historyCount Maximum number of characters to store.</span>
  325. 00325 <span class="comment"> @Return PVR_SUCCESS if successful, PVR_FAIL if not</span>
  326. 00326 <span class="comment"> @Description Loads the specified ".POD" file; returns the scene in</span>
  327. 00327 <span class="comment"> pScene. This structure must later be destroyed with</span>
  328. 00328 <span class="comment"> PVRTModelPODDestroy() to prevent memory leaks.</span>
  329. 00329 <span class="comment"> ".POD" files are exported using the PVRGeoPOD exporters.</span>
  330. 00330 <span class="comment"> If pszExpOpt is NULL, the scene is loaded; otherwise the</span>
  331. 00331 <span class="comment"> scene is not loaded and pszExpOpt is filled in. The same</span>
  332. 00332 <span class="comment"> is true for pszHistory.</span>
  333. 00333 <span class="comment"> *****************************************************************************/</span>
  334. 00334 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a2">ReadFromFile</a>(
  335. 00335 <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszFileName,
  336. 00336 <span class="keywordtype">char</span> * <span class="keyword">const</span> pszExpOpt = NULL,
  337. 00337 <span class="keyword">const</span> size_t count = 0,
  338. 00338 <span class="keywordtype">char</span> * <span class="keyword">const</span> pszHistory = NULL,
  339. 00339 <span class="keyword">const</span> size_t historyCount = 0);
  340. 00340
  341. 00341 <span class="comment">/*!***************************************************************************</span>
  342. 00342 <span class="comment"> @Function ReadFromMemory</span>
  343. 00343 <span class="comment"> @Input pData Data to load</span>
  344. 00344 <span class="comment"> @Input i32Size Size of data</span>
  345. 00345 <span class="comment"> @Output pszExpOpt String in which to place exporter options</span>
  346. 00346 <span class="comment"> @Input count Maximum number of characters to store.</span>
  347. 00347 <span class="comment"> @Output pszHistory String in which to place the pod file history</span>
  348. 00348 <span class="comment"> @Input historyCount Maximum number of characters to store.</span>
  349. 00349 <span class="comment"> @Return PVR_SUCCESS if successful, PVR_FAIL if not</span>
  350. 00350 <span class="comment"> @Description Loads the supplied pod data. This data can be exported</span>
  351. 00351 <span class="comment"> directly to a header using one of the pod exporters.</span>
  352. 00352 <span class="comment"> If pszExpOpt is NULL, the scene is loaded; otherwise the</span>
  353. 00353 <span class="comment"> scene is not loaded and pszExpOpt is filled in. The same</span>
  354. 00354 <span class="comment"> is true for pszHistory.</span>
  355. 00355 <span class="comment"> *****************************************************************************/</span>
  356. 00356 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a3">ReadFromMemory</a>(
  357. 00357 <span class="keyword">const</span> <span class="keywordtype">char</span> * pData,
  358. 00358 <span class="keyword">const</span> size_t i32Size,
  359. 00359 <span class="keywordtype">char</span> * <span class="keyword">const</span> pszExpOpt = NULL,
  360. 00360 <span class="keyword">const</span> size_t count = NULL,
  361. 00361 <span class="keywordtype">char</span> * <span class="keyword">const</span> pszHistory = NULL,
  362. 00362 <span class="keyword">const</span> size_t historyCount = NULL);
  363. 00363
  364. 00364 <span class="comment">/*!***************************************************************************</span>
  365. 00365 <span class="comment"> @Function ReadFromMemory</span>
  366. 00366 <span class="comment"> @Input scene Scene data from the header file</span>
  367. 00367 <span class="comment"> @Return PVR_SUCCESS if successful, PVR_FAIL if not</span>
  368. 00368 <span class="comment"> @Description Sets the scene data from the supplied data structure. Use</span>
  369. 00369 <span class="comment"> when loading from .H files.</span>
  370. 00370 <span class="comment"> *****************************************************************************/</span>
  371. 00371 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a3">ReadFromMemory</a>(
  372. 00372 <span class="keyword">const</span> <a class="code" href="structSPODScene.html">SPODScene</a> &amp;scene);
  373. 00373
  374. 00374 <span class="comment">/*!***************************************************************************</span>
  375. 00375 <span class="comment"> @Function CopyFromMemory</span>
  376. 00376 <span class="comment"> @Input scene Scene data from the header file</span>
  377. 00377 <span class="comment"> @Return PVR_SUCCESS if successful, PVR_FAIL if not</span>
  378. 00378 <span class="comment"> @Description Copies the scene data from the supplied data structure. Use</span>
  379. 00379 <span class="comment"> when loading from .H files where you want to modify the data.</span>
  380. 00380 <span class="comment"> *****************************************************************************/</span>
  381. 00381 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a5">CopyFromMemory</a>(
  382. 00382 <span class="keyword">const</span> <a class="code" href="structSPODScene.html">SPODScene</a> &amp;scene);
  383. 00383
  384. 00384 <span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(__BADA__)</span>
  385. 00385 <span class="preprocessor"></span> <span class="comment">/*!***************************************************************************</span>
  386. 00386 <span class="comment"> @Function ReadFromResource</span>
  387. 00387 <span class="comment"> @Input pszName Name of the resource to load from</span>
  388. 00388 <span class="comment"> @Return PVR_SUCCESS if successful, PVR_FAIL if not</span>
  389. 00389 <span class="comment"> @Description Loads the specified ".POD" file; returns the scene in</span>
  390. 00390 <span class="comment"> pScene. This structure must later be destroyed with</span>
  391. 00391 <span class="comment"> PVRTModelPODDestroy() to prevent memory leaks.</span>
  392. 00392 <span class="comment"> ".POD" files are exported from 3D Studio MAX using a</span>
  393. 00393 <span class="comment"> PowerVR plugin.</span>
  394. 00394 <span class="comment"> *****************************************************************************/</span>
  395. 00395 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> ReadFromResource(
  396. 00396 <span class="keyword">const</span> TCHAR * <span class="keyword">const</span> pszName);
  397. 00397 <span class="preprocessor">#endif</span>
  398. 00398 <span class="preprocessor"></span>
  399. 00399 <span class="comment">/*!***********************************************************************</span>
  400. 00400 <span class="comment"> @Function InitImpl</span>
  401. 00401 <span class="comment"> @Description Used by the Read*() fns to initialise implementation</span>
  402. 00402 <span class="comment"> details. Should also be called by applications which</span>
  403. 00403 <span class="comment"> manually build data in the POD structures for rendering;</span>
  404. 00404 <span class="comment"> in this case call it after the data has been created.</span>
  405. 00405 <span class="comment"> Otherwise, do not call this function.</span>
  406. 00406 <span class="comment"> *************************************************************************/</span>
  407. 00407 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a6">InitImpl</a>();
  408. 00408
  409. 00409 <span class="comment">/*!***********************************************************************</span>
  410. 00410 <span class="comment"> @Function DestroyImpl</span>
  411. 00411 <span class="comment"> @Description Used to free memory allocated by the implementation.</span>
  412. 00412 <span class="comment"> *************************************************************************/</span>
  413. 00413 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a7">DestroyImpl</a>();
  414. 00414
  415. 00415 <span class="comment">/*!***********************************************************************</span>
  416. 00416 <span class="comment"> @Function FlushCache</span>
  417. 00417 <span class="comment"> @Description Clears the matrix cache; use this if necessary when you</span>
  418. 00418 <span class="comment"> edit the position or animation of a node.</span>
  419. 00419 <span class="comment"> *************************************************************************/</span>
  420. 00420 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a8">FlushCache</a>();
  421. 00421 <span class="comment">/*!***************************************************************************</span>
  422. 00422 <span class="comment"> @Function Destroy</span>
  423. 00423 <span class="comment"> @Description Frees the memory allocated to store the scene in pScene.</span>
  424. 00424 <span class="comment"> *****************************************************************************/</span>
  425. 00425 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a9">Destroy</a>();
  426. 00426
  427. 00427 <span class="comment">/*!***************************************************************************</span>
  428. 00428 <span class="comment"> @Function SetFrame</span>
  429. 00429 <span class="comment"> @Input fFrame Frame number</span>
  430. 00430 <span class="comment"> @Description Set the animation frame for which subsequent Get*() calls</span>
  431. 00431 <span class="comment"> should return data.</span>
  432. 00432 <span class="comment"> *****************************************************************************/</span>
  433. 00433 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a10">SetFrame</a>(
  434. 00434 <span class="keyword">const</span> VERTTYPE fFrame);
  435. 00435
  436. 00436 <span class="comment">/*!***************************************************************************</span>
  437. 00437 <span class="comment"> @Function GetRotationMatrix</span>
  438. 00438 <span class="comment"> @Output mOut Rotation matrix</span>
  439. 00439 <span class="comment"> @Input node Node to get the rotation matrix from</span>
  440. 00440 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  441. 00441 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  442. 00442 <span class="comment"> *****************************************************************************/</span>
  443. 00443 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a11">GetRotationMatrix</a>(
  444. 00444 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  445. 00445 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  446. 00446
  447. 00447 <span class="comment">/*!***************************************************************************</span>
  448. 00448 <span class="comment"> @Function GetRotationMatrix</span>
  449. 00449 <span class="comment"> @Input node Node to get the rotation matrix from</span>
  450. 00450 <span class="comment"> @Returns Rotation matrix</span>
  451. 00451 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  452. 00452 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  453. 00453 <span class="comment"> *****************************************************************************/</span>
  454. 00454 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a11">GetRotationMatrix</a>(
  455. 00455 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  456. 00456
  457. 00457 <span class="comment">/*!***************************************************************************</span>
  458. 00458 <span class="comment"> @Function GetScalingMatrix</span>
  459. 00459 <span class="comment"> @Output mOut Scaling matrix</span>
  460. 00460 <span class="comment"> @Input node Node to get the rotation matrix from</span>
  461. 00461 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  462. 00462 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  463. 00463 <span class="comment"> *****************************************************************************/</span>
  464. 00464 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a13">GetScalingMatrix</a>(
  465. 00465 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  466. 00466 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  467. 00467
  468. 00468 <span class="comment">/*!***************************************************************************</span>
  469. 00469 <span class="comment"> @Function GetScalingMatrix</span>
  470. 00470 <span class="comment"> @Input node Node to get the rotation matrix from</span>
  471. 00471 <span class="comment"> @Returns Scaling matrix</span>
  472. 00472 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  473. 00473 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  474. 00474 <span class="comment"> *****************************************************************************/</span>
  475. 00475 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a13">GetScalingMatrix</a>(
  476. 00476 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  477. 00477
  478. 00478 <span class="comment">/*!***************************************************************************</span>
  479. 00479 <span class="comment"> @Function GetTranslation</span>
  480. 00480 <span class="comment"> @Output V Translation vector</span>
  481. 00481 <span class="comment"> @Input node Node to get the translation vector from</span>
  482. 00482 <span class="comment"> @Description Generates the translation vector for the given Mesh</span>
  483. 00483 <span class="comment"> Instance. Uses animation data.</span>
  484. 00484 <span class="comment"> *****************************************************************************/</span>
  485. 00485 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a15">GetTranslation</a>(
  486. 00486 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;V,
  487. 00487 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  488. 00488
  489. 00489 <span class="comment">/*!***************************************************************************</span>
  490. 00490 <span class="comment"> @Function GetTranslation</span>
  491. 00491 <span class="comment"> @Input node Node to get the translation vector from</span>
  492. 00492 <span class="comment"> @Returns Translation vector</span>
  493. 00493 <span class="comment"> @Description Generates the translation vector for the given Mesh</span>
  494. 00494 <span class="comment"> Instance. Uses animation data.</span>
  495. 00495 <span class="comment"> *****************************************************************************/</span>
  496. 00496 <a class="code" href="structPVRTVec3.html">PVRTVec3</a> <a class="code" href="classCPVRTModelPOD.html#a15">GetTranslation</a>(
  497. 00497 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  498. 00498
  499. 00499 <span class="comment">/*!***************************************************************************</span>
  500. 00500 <span class="comment"> @Function GetTranslationMatrix</span>
  501. 00501 <span class="comment"> @Output mOut Translation matrix</span>
  502. 00502 <span class="comment"> @Input node Node to get the translation matrix from</span>
  503. 00503 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  504. 00504 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  505. 00505 <span class="comment"> *****************************************************************************/</span>
  506. 00506 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a17">GetTranslationMatrix</a>(
  507. 00507 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  508. 00508 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  509. 00509
  510. 00510 <span class="comment">/*!***************************************************************************</span>
  511. 00511 <span class="comment"> @Function GetTranslationMatrix</span>
  512. 00512 <span class="comment"> @Input node Node to get the translation matrix from</span>
  513. 00513 <span class="comment"> @Returns Translation matrix</span>
  514. 00514 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  515. 00515 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  516. 00516 <span class="comment"> *****************************************************************************/</span>
  517. 00517 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a17">GetTranslationMatrix</a>(
  518. 00518 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  519. 00519
  520. 00520 <span class="comment">/*!***************************************************************************</span>
  521. 00521 <span class="comment"> @Function GetTransformationMatrix</span>
  522. 00522 <span class="comment"> @Output mOut Transformation matrix</span>
  523. 00523 <span class="comment"> @Input node Node to get the transformation matrix from</span>
  524. 00524 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  525. 00525 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  526. 00526 <span class="comment"> *****************************************************************************/</span>
  527. 00527 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a19">GetTransformationMatrix</a>(<a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut, <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  528. 00528
  529. 00529 <span class="comment">/*!***************************************************************************</span>
  530. 00530 <span class="comment"> @Function GetWorldMatrixNoCache</span>
  531. 00531 <span class="comment"> @Output mOut World matrix</span>
  532. 00532 <span class="comment"> @Input node Node to get the world matrix from</span>
  533. 00533 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  534. 00534 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  535. 00535 <span class="comment"> *****************************************************************************/</span>
  536. 00536 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a20">GetWorldMatrixNoCache</a>(
  537. 00537 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  538. 00538 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  539. 00539
  540. 00540 <span class="comment">/*!***************************************************************************</span>
  541. 00541 <span class="comment"> @Function GetWorldMatrixNoCache</span>
  542. 00542 <span class="comment"> @Input node Node to get the world matrix from</span>
  543. 00543 <span class="comment"> @Returns World matrix</span>
  544. 00544 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  545. 00545 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  546. 00546 <span class="comment"> *****************************************************************************/</span>
  547. 00547 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a20">GetWorldMatrixNoCache</a>(
  548. 00548 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  549. 00549
  550. 00550 <span class="comment">/*!***************************************************************************</span>
  551. 00551 <span class="comment"> @Function GetWorldMatrix</span>
  552. 00552 <span class="comment"> @Output mOut World matrix</span>
  553. 00553 <span class="comment"> @Input node Node to get the world matrix from</span>
  554. 00554 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  555. 00555 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  556. 00556 <span class="comment"> *****************************************************************************/</span>
  557. 00557 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a22">GetWorldMatrix</a>(
  558. 00558 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  559. 00559 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
  560. 00560
  561. 00561 <span class="comment">/*!***************************************************************************</span>
  562. 00562 <span class="comment"> @Function GetWorldMatrix</span>
  563. 00563 <span class="comment"> @Input node Node to get the world matrix from</span>
  564. 00564 <span class="comment"> @Returns World matrix</span>
  565. 00565 <span class="comment"> @Description Generates the world matrix for the given Mesh Instance;</span>
  566. 00566 <span class="comment"> applies the parent's transform too. Uses animation data.</span>
  567. 00567 <span class="comment"> *****************************************************************************/</span>
  568. 00568 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a22">GetWorldMatrix</a>(<span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>&amp; node) <span class="keyword">const</span>;
  569. 00569
  570. 00570 <span class="comment">/*!***************************************************************************</span>
  571. 00571 <span class="comment"> @Function GetBoneWorldMatrix</span>
  572. 00572 <span class="comment"> @Output mOut Bone world matrix</span>
  573. 00573 <span class="comment"> @Input NodeMesh Mesh to take the bone matrix from</span>
  574. 00574 <span class="comment"> @Input NodeBone Bone to take the matrix from</span>
  575. 00575 <span class="comment"> @Description Generates the world matrix for the given bone.</span>
  576. 00576 <span class="comment"> *****************************************************************************/</span>
  577. 00577 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a24">GetBoneWorldMatrix</a>(
  578. 00578 <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut,
  579. 00579 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;NodeMesh,
  580. 00580 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;NodeBone);
  581. 00581
  582. 00582 <span class="comment">/*!***************************************************************************</span>
  583. 00583 <span class="comment"> @Function GetBoneWorldMatrix</span>
  584. 00584 <span class="comment"> @Input NodeMesh Mesh to take the bone matrix from</span>
  585. 00585 <span class="comment"> @Input NodeBone Bone to take the matrix from</span>
  586. 00586 <span class="comment"> @Returns Bone world matrix</span>
  587. 00587 <span class="comment"> @Description Generates the world matrix for the given bone.</span>
  588. 00588 <span class="comment"> *****************************************************************************/</span>
  589. 00589 <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a24">GetBoneWorldMatrix</a>(
  590. 00590 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;NodeMesh,
  591. 00591 <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;NodeBone);
  592. 00592
  593. 00593 <span class="comment">/*!***************************************************************************</span>
  594. 00594 <span class="comment"> @Function GetCamera</span>
  595. 00595 <span class="comment"> @Output vFrom Position of the camera</span>
  596. 00596 <span class="comment"> @Output vTo Target of the camera</span>
  597. 00597 <span class="comment"> @Output vUp Up direction of the camera</span>
  598. 00598 <span class="comment"> @Input nIdx Camera number</span>
  599. 00599 <span class="comment"> @Return Camera horizontal FOV</span>
  600. 00600 <span class="comment"> @Description Calculate the From, To and Up vectors for the given</span>
  601. 00601 <span class="comment"> camera. Uses animation data.</span>
  602. 00602 <span class="comment"> Note that even if the camera has a target, *pvTo is not</span>
  603. 00603 <span class="comment"> the position of that target. *pvTo is a position in the</span>
  604. 00604 <span class="comment"> correct direction of the target, one unit away from the</span>
  605. 00605 <span class="comment"> camera.</span>
  606. 00606 <span class="comment"> *****************************************************************************/</span>
  607. 00607 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="classCPVRTModelPOD.html#a26">GetCamera</a>(
  608. 00608 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vFrom,
  609. 00609 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vTo,
  610. 00610 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vUp,
  611. 00611 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nIdx) <span class="keyword">const</span>;
  612. 00612
  613. 00613 <span class="comment">/*!***************************************************************************</span>
  614. 00614 <span class="comment"> @Function GetCameraPos</span>
  615. 00615 <span class="comment"> @Output vFrom Position of the camera</span>
  616. 00616 <span class="comment"> @Output vTo Target of the camera</span>
  617. 00617 <span class="comment"> @Input nIdx Camera number</span>
  618. 00618 <span class="comment"> @Return Camera horizontal FOV</span>
  619. 00619 <span class="comment"> @Description Calculate the position of the camera and its target. Uses</span>
  620. 00620 <span class="comment"> animation data.</span>
  621. 00621 <span class="comment"> If the queried camera does not have a target, *pvTo is</span>
  622. 00622 <span class="comment"> not changed.</span>
  623. 00623 <span class="comment"> *****************************************************************************/</span>
  624. 00624 <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="classCPVRTModelPOD.html#a27">GetCameraPos</a>(
  625. 00625 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vFrom,
  626. 00626 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vTo,
  627. 00627 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nIdx) <span class="keyword">const</span>;
  628. 00628
  629. 00629 <span class="comment">/*!***************************************************************************</span>
  630. 00630 <span class="comment"> @Function GetLight</span>
  631. 00631 <span class="comment"> @Output vPos Position of the light</span>
  632. 00632 <span class="comment"> @Output vDir Direction of the light</span>
  633. 00633 <span class="comment"> @Input nIdx Light number</span>
  634. 00634 <span class="comment"> @Description Calculate the position and direction of the given Light.</span>
  635. 00635 <span class="comment"> Uses animation data.</span>
  636. 00636 <span class="comment"> *****************************************************************************/</span>
  637. 00637 <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a28">GetLight</a>(
  638. 00638 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vPos,
  639. 00639 <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> &amp;vDir,
  640. 00640 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nIdx) <span class="keyword">const</span>;
  641. 00641
  642. 00642 <span class="comment">/*!***************************************************************************</span>
  643. 00643 <span class="comment"> @Function GetLightPosition</span>
  644. 00644 <span class="comment"> @Input u32Idx Light number</span>
  645. 00645 <span class="comment"> @Return PVRTVec4 position of light with w set correctly</span>
  646. 00646 <span class="comment"> @Description Calculate the position the given Light. Uses animation data.</span>
  647. 00647 <span class="comment"> *****************************************************************************/</span>
  648. 00648 <a class="code" href="structPVRTVec4.html">PVRTVec4</a> <a class="code" href="classCPVRTModelPOD.html#a29">GetLightPosition</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Idx) <span class="keyword">const</span>;
  649. 00649
  650. 00650 <span class="comment">/*!***************************************************************************</span>
  651. 00651 <span class="comment"> @Function GetLightDirection</span>
  652. 00652 <span class="comment"> @Input u32Idx Light number</span>
  653. 00653 <span class="comment"> @Return PVRTVec4 direction of light with w set correctly</span>
  654. 00654 <span class="comment"> @Description Calculate the direction of the given Light. Uses animation data.</span>
  655. 00655 <span class="comment"> *****************************************************************************/</span>
  656. 00656 <a class="code" href="structPVRTVec4.html">PVRTVec4</a> <a class="code" href="classCPVRTModelPOD.html#a30">GetLightDirection</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Idx) <span class="keyword">const</span>;
  657. 00657
  658. 00658 <span class="comment">/*!***************************************************************************</span>
  659. 00659 <span class="comment"> @Function CreateSkinIdxWeight</span>
  660. 00660 <span class="comment"> @Output pIdx Four bytes containing matrix indices for vertex (0..255) (D3D: use UBYTE4)</span>
  661. 00661 <span class="comment"> @Output pWeight Four bytes containing blend weights for vertex (0.0 .. 1.0) (D3D: use D3DCOLOR)</span>
  662. 00662 <span class="comment"> @Input nVertexBones Number of bones this vertex uses</span>
  663. 00663 <span class="comment"> @Input pnBoneIdx Pointer to 'nVertexBones' indices</span>
  664. 00664 <span class="comment"> @Input pfBoneWeight Pointer to 'nVertexBones' blend weights</span>
  665. 00665 <span class="comment"> @Description Creates the matrix indices and blend weights for a boned</span>
  666. 00666 <span class="comment"> vertex. Call once per vertex of a boned mesh.</span>
  667. 00667 <span class="comment"> *****************************************************************************/</span>
  668. 00668 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a31">CreateSkinIdxWeight</a>(
  669. 00669 <span class="keywordtype">char</span> * <span class="keyword">const</span> pIdx,
  670. 00670 <span class="keywordtype">char</span> * <span class="keyword">const</span> pWeight,
  671. 00671 <span class="keyword">const</span> <span class="keywordtype">int</span> nVertexBones,
  672. 00672 <span class="keyword">const</span> <span class="keywordtype">int</span> * <span class="keyword">const</span> pnBoneIdx,
  673. 00673 <span class="keyword">const</span> VERTTYPE * <span class="keyword">const</span> pfBoneWeight);
  674. 00674
  675. 00675 <span class="comment">/*!***************************************************************************</span>
  676. 00676 <span class="comment"> @Function SavePOD</span>
  677. 00677 <span class="comment"> @Input pszFilename Filename to save to</span>
  678. 00678 <span class="comment"> @Input pszExpOpt A string containing the options used by the exporter</span>
  679. 00679 <span class="comment"> @Input pszHistory A string containing the history of the exported pod file</span>
  680. 00680 <span class="comment"> @Description Save a binary POD file (.POD).</span>
  681. 00681 <span class="comment"> *****************************************************************************/</span>
  682. 00682 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a32">SavePOD</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszFilename, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszExpOpt = 0, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszHistory = 0);
  683. 00683
  684. 00684 <span class="keyword">private</span>:
  685. 00685 SPVRTPODImpl *m_pImpl;
  686. 00686 };
  687. 00687
  688. 00688 <span class="comment">/****************************************************************************</span>
  689. 00689 <span class="comment">** Declarations</span>
  690. 00690 <span class="comment">****************************************************************************/</span>
  691. 00691
  692. 00692 <span class="comment">/*!***************************************************************************</span>
  693. 00693 <span class="comment"> @Function PVRTModelPODDataTypeSize</span>
  694. 00694 <span class="comment"> @Input type Type to get the size of</span>
  695. 00695 <span class="comment"> @Return Size of the data element</span>
  696. 00696 <span class="comment"> @Description Returns the size of each data element.</span>
  697. 00697 <span class="comment">*****************************************************************************/</span>
  698. 00698 size_t <a class="code" href="PVRTModelPOD_8h.html#a34">PVRTModelPODDataTypeSize</a>(<span class="keyword">const</span> EPVRTDataType type);
  699. 00699
  700. 00700 <span class="comment">/*!***************************************************************************</span>
  701. 00701 <span class="comment"> @Function PVRTModelPODDataTypeComponentCount</span>
  702. 00702 <span class="comment"> @Input type Type to get the number of components from</span>
  703. 00703 <span class="comment"> @Return number of components in the data element</span>
  704. 00704 <span class="comment"> @Description Returns the number of components in a data element.</span>
  705. 00705 <span class="comment">*****************************************************************************/</span>
  706. 00706 size_t <a class="code" href="PVRTModelPOD_8h.html#a35">PVRTModelPODDataTypeComponentCount</a>(<span class="keyword">const</span> EPVRTDataType type);
  707. 00707
  708. 00708 <span class="comment">/*!***************************************************************************</span>
  709. 00709 <span class="comment"> @Function PVRTModelPODDataStride</span>
  710. 00710 <span class="comment"> @Input data Data elements</span>
  711. 00711 <span class="comment"> @Return Size of the vector elements</span>
  712. 00712 <span class="comment"> @Description Returns the size of the vector of data elements.</span>
  713. 00713 <span class="comment">*****************************************************************************/</span>
  714. 00714 size_t <a class="code" href="PVRTModelPOD_8h.html#a36">PVRTModelPODDataStride</a>(<span class="keyword">const</span> <a class="code" href="classCPODData.html">CPODData</a> &amp;data);
  715. 00715
  716. 00716 <span class="comment">/*!***************************************************************************</span>
  717. 00717 <span class="comment"> @Function PVRTModelPODGetAnimArraySize</span>
  718. 00718 <span class="comment"> @Input pAnimDataIdx</span>
  719. 00719 <span class="comment"> @Input ui32Frames</span>
  720. 00720 <span class="comment"> @Input ui32Components</span>
  721. 00721 <span class="comment"> @Return Size of the animation array</span>
  722. 00722 <span class="comment"> @Description Calculates the size of an animation array</span>
  723. 00723 <span class="comment">*****************************************************************************/</span>
  724. 00724 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="PVRTModelPOD_8h.html#a37">PVRTModelPODGetAnimArraySize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *pAnimDataIdx, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32Frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32Components);
  725. 00725
  726. 00726 <span class="comment">/*!***************************************************************************</span>
  727. 00727 <span class="comment"> @Function PVRTModelPODScaleAndConvertVtxData</span>
  728. 00728 <span class="comment"> @Modified mesh POD mesh to scale and convert the mesh data</span>
  729. 00729 <span class="comment"> @Input eNewType The data type to scale and convert the vertex data to</span>
  730. 00730 <span class="comment"> @Return PVR_SUCCESS on success and PVR_FAIL on failure.</span>
  731. 00731 <span class="comment"> @Description Scales the vertex data to fit within the range of the requested</span>
  732. 00732 <span class="comment"> data type and then converts the data to that type. This function</span>
  733. 00733 <span class="comment"> isn't currently compiled in for fixed point builds of the tools.</span>
  734. 00734 <span class="comment">*****************************************************************************/</span>
  735. 00735 <span class="preprocessor">#if !defined(PVRT_FIXED_POINT_ENABLE)</span>
  736. 00736 <span class="preprocessor"></span><a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="PVRTModelPOD_8h.html#a38">PVRTModelPODScaleAndConvertVtxData</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keyword">const</span> EPVRTDataType eNewType);
  737. 00737 <span class="preprocessor">#endif</span>
  738. 00738 <span class="preprocessor"></span><span class="comment">/*!***************************************************************************</span>
  739. 00739 <span class="comment"> @Function PVRTModelPODDataConvert</span>
  740. 00740 <span class="comment"> @Modified data Data elements to convert</span>
  741. 00741 <span class="comment"> @Input eNewType New type of elements</span>
  742. 00742 <span class="comment"> @Input nCnt Number of elements</span>
  743. 00743 <span class="comment"> @Description Convert the format of the array of vectors.</span>
  744. 00744 <span class="comment">*****************************************************************************/</span>
  745. 00745 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a39">PVRTModelPODDataConvert</a>(<a class="code" href="classCPODData.html">CPODData</a> &amp;data, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nCnt, <span class="keyword">const</span> EPVRTDataType eNewType);
  746. 00746
  747. 00747 <span class="comment">/*!***************************************************************************</span>
  748. 00748 <span class="comment"> @Function PVRTModelPODDataShred</span>
  749. 00749 <span class="comment"> @Modified data Data elements to modify</span>
  750. 00750 <span class="comment"> @Input nCnt Number of elements</span>
  751. 00751 <span class="comment"> @Input pChannels A list of the wanted channels, e.g. {'x', 'y', 0}</span>
  752. 00752 <span class="comment"> @Description Reduce the number of dimensions in 'data' using the requested</span>
  753. 00753 <span class="comment"> channel array. The array should have a maximum length of 4</span>
  754. 00754 <span class="comment"> or be null terminated if less channels are wanted. Supported</span>
  755. 00755 <span class="comment"> elements are 'x','y','z' and 'w'. They must be defined in lower</span>
  756. 00756 <span class="comment"> case. It is also possible to negate an element, e.g. {'x','y', -'z'}.</span>
  757. 00757 <span class="comment">*****************************************************************************/</span>
  758. 00758 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a40">PVRTModelPODDataShred</a>(<a class="code" href="classCPODData.html">CPODData</a> &amp;data, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nCnt, <span class="keyword">const</span> <span class="keywordtype">int</span> *pChannels);
  759. 00759
  760. 00760 <span class="comment">/*!***************************************************************************</span>
  761. 00761 <span class="comment"> @Function PVRTModelPODReorderFaces</span>
  762. 00762 <span class="comment"> @Modified mesh The mesh to re-order the faces of</span>
  763. 00763 <span class="comment"> @Input i32El1 The first index to be written out</span>
  764. 00764 <span class="comment"> @Input i32El2 The second index to be written out</span>
  765. 00765 <span class="comment"> @Input i32El3 The third index to be written out</span>
  766. 00766 <span class="comment"> @Description Reorders the face indices of a mesh.</span>
  767. 00767 <span class="comment">*****************************************************************************/</span>
  768. 00768 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a41">PVRTModelPODReorderFaces</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El1, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El2, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El3);
  769. 00769
  770. 00770 <span class="comment">/*!***************************************************************************</span>
  771. 00771 <span class="comment"> @Function PVRTModelPODToggleInterleaved</span>
  772. 00772 <span class="comment"> @Modified mesh Mesh to modify</span>
  773. 00773 <span class="comment"> @Input ui32AlignToNBytes Align the interleaved data to this no. of bytes.</span>
  774. 00774 <span class="comment"> @Description Switches the supplied mesh to or from interleaved data format.</span>
  775. 00775 <span class="comment">*****************************************************************************/</span>
  776. 00776 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a42">PVRTModelPODToggleInterleaved</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32AlignToNBytes = 1);
  777. 00777
  778. 00778 <span class="comment">/*!***************************************************************************</span>
  779. 00779 <span class="comment"> @Function PVRTModelPODDeIndex</span>
  780. 00780 <span class="comment"> @Modified mesh Mesh to modify</span>
  781. 00781 <span class="comment"> @Description De-indexes the supplied mesh. The mesh must be</span>
  782. 00782 <span class="comment"> Interleaved before calling this function.</span>
  783. 00783 <span class="comment">*****************************************************************************/</span>
  784. 00784 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a43">PVRTModelPODDeIndex</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
  785. 00785
  786. 00786 <span class="comment">/*!***************************************************************************</span>
  787. 00787 <span class="comment"> @Function PVRTModelPODToggleStrips</span>
  788. 00788 <span class="comment"> @Modified mesh Mesh to modify</span>
  789. 00789 <span class="comment"> @Description Converts the supplied mesh to or from strips.</span>
  790. 00790 <span class="comment">*****************************************************************************/</span>
  791. 00791 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a44">PVRTModelPODToggleStrips</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
  792. 00792
  793. 00793 <span class="comment">/*!***************************************************************************</span>
  794. 00794 <span class="comment"> @Function PVRTModelPODCountIndices</span>
  795. 00795 <span class="comment"> @Input mesh Mesh</span>
  796. 00796 <span class="comment"> @Return Number of indices used by mesh</span>
  797. 00797 <span class="comment"> @Description Counts the number of indices of a mesh</span>
  798. 00798 <span class="comment">*****************************************************************************/</span>
  799. 00799 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="PVRTModelPOD_8h.html#a45">PVRTModelPODCountIndices</a>(<span class="keyword">const</span> <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
  800. 00800
  801. 00801 <span class="comment">/*!***************************************************************************</span>
  802. 00802 <span class="comment"> @Function PVRTModelPODToggleFixedPoint</span>
  803. 00803 <span class="comment"> @Modified s Scene to modify</span>
  804. 00804 <span class="comment"> @Description Switch all non-vertex data between fixed-point and</span>
  805. 00805 <span class="comment"> floating-point.</span>
  806. 00806 <span class="comment">*****************************************************************************/</span>
  807. 00807 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a46">PVRTModelPODToggleFixedPoint</a>(<a class="code" href="structSPODScene.html">SPODScene</a> &amp;s);
  808. 00808
  809. 00809 <span class="comment">/*!***************************************************************************</span>
  810. 00810 <span class="comment"> @Function PVRTModelPODCopyCPODData</span>
  811. 00811 <span class="comment"> @Input in</span>
  812. 00812 <span class="comment"> @Output out</span>
  813. 00813 <span class="comment"> @Input ui32No</span>
  814. 00814 <span class="comment"> @Input bInterleaved</span>
  815. 00815 <span class="comment"> @Description Used to copy a CPODData of a mesh</span>
  816. 00816 <span class="comment">*****************************************************************************/</span>
  817. 00817 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a47">PVRTModelPODCopyCPODData</a>(<span class="keyword">const</span> <a class="code" href="classCPODData.html">CPODData</a> &amp;in, <a class="code" href="classCPODData.html">CPODData</a> &amp;out, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32No, <span class="keywordtype">bool</span> bInterleaved);
  818. 00818
  819. 00819 <span class="comment">/*!***************************************************************************</span>
  820. 00820 <span class="comment"> @Function PVRTModelPODCopyNode</span>
  821. 00821 <span class="comment"> @Input in</span>
  822. 00822 <span class="comment"> @Output out</span>
  823. 00823 <span class="comment"> @Input nNumFrames The number of animation frames</span>
  824. 00824 <span class="comment"> @Description Used to copy a pod node</span>
  825. 00825 <span class="comment">*****************************************************************************/</span>
  826. 00826 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a48">PVRTModelPODCopyNode</a>(<span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;in, <a class="code" href="structSPODNode.html">SPODNode</a> &amp;out, <span class="keywordtype">int</span> nNumFrames);
  827. 00827
  828. 00828 <span class="comment">/*!***************************************************************************</span>
  829. 00829 <span class="comment"> @Function PVRTModelPODCopyMesh</span>
  830. 00830 <span class="comment"> @Input in</span>
  831. 00831 <span class="comment"> @Output out</span>
  832. 00832 <span class="comment"> @Description Used to copy a pod mesh</span>
  833. 00833 <span class="comment">*****************************************************************************/</span>
  834. 00834 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a49">PVRTModelPODCopyMesh</a>(<span class="keyword">const</span> <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;in, <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;out);
  835. 00835
  836. 00836 <span class="comment">/*!***************************************************************************</span>
  837. 00837 <span class="comment"> @Function PVRTModelPODCopyTexture</span>
  838. 00838 <span class="comment"> @Input in</span>
  839. 00839 <span class="comment"> @Output out</span>
  840. 00840 <span class="comment"> @Description Used to copy a pod texture</span>
  841. 00841 <span class="comment">*****************************************************************************/</span>
  842. 00842 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a50">PVRTModelPODCopyTexture</a>(<span class="keyword">const</span> <a class="code" href="structSPODTexture.html">SPODTexture</a> &amp;in, <a class="code" href="structSPODTexture.html">SPODTexture</a> &amp;out);
  843. 00843
  844. 00844 <span class="comment">/*!***************************************************************************</span>
  845. 00845 <span class="comment"> @Function PVRTModelPODCopyMaterial</span>
  846. 00846 <span class="comment"> @Input in</span>
  847. 00847 <span class="comment"> @Output out</span>
  848. 00848 <span class="comment"> @Description Used to copy a pod material</span>
  849. 00849 <span class="comment">*****************************************************************************/</span>
  850. 00850 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a51">PVRTModelPODCopyMaterial</a>(<span class="keyword">const</span> <a class="code" href="structSPODMaterial.html">SPODMaterial</a> &amp;in, <a class="code" href="structSPODMaterial.html">SPODMaterial</a> &amp;out);
  851. 00851
  852. 00852 <span class="comment">/*!***************************************************************************</span>
  853. 00853 <span class="comment"> @Function PVRTModelPODCopyCamera</span>
  854. 00854 <span class="comment"> @Input in</span>
  855. 00855 <span class="comment"> @Output out</span>
  856. 00856 <span class="comment"> @Input nNumFrames The number of animation frames</span>
  857. 00857 <span class="comment"> @Description Used to copy a pod camera</span>
  858. 00858 <span class="comment">*****************************************************************************/</span>
  859. 00859 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a52">PVRTModelPODCopyCamera</a>(<span class="keyword">const</span> <a class="code" href="structSPODCamera.html">SPODCamera</a> &amp;in, <a class="code" href="structSPODCamera.html">SPODCamera</a> &amp;out, <span class="keywordtype">int</span> nNumFrames);
  860. 00860
  861. 00861 <span class="comment">/*!***************************************************************************</span>
  862. 00862 <span class="comment"> @Function PVRTModelPODCopyLight</span>
  863. 00863 <span class="comment"> @Input in</span>
  864. 00864 <span class="comment"> @Output out</span>
  865. 00865 <span class="comment"> @Description Used to copy a pod light</span>
  866. 00866 <span class="comment">*****************************************************************************/</span>
  867. 00867 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a53">PVRTModelPODCopyLight</a>(<span class="keyword">const</span> <a class="code" href="structSPODLight.html">SPODLight</a> &amp;in, <a class="code" href="structSPODLight.html">SPODLight</a> &amp;out);
  868. 00868
  869. 00869 <span class="comment">/*!***************************************************************************</span>
  870. 00870 <span class="comment"> @Function PVRTModelPODFlattenToWorldSpace</span>
  871. 00871 <span class="comment"> @Input in - Source scene. All meshes must not be interleaved.</span>
  872. 00872 <span class="comment"> @Output out</span>
  873. 00873 <span class="comment"> @Description Used to flatten a pod scene to world space. All animation</span>
  874. 00874 <span class="comment"> and skinning information will be removed. The returned</span>
  875. 00875 <span class="comment"> position, normal, binormals and tangent data if present</span>
  876. 00876 <span class="comment"> will be returned as floats regardless of the input data</span>
  877. 00877 <span class="comment"> type.</span>
  878. 00878 <span class="comment">*****************************************************************************/</span>
  879. 00879 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="PVRTModelPOD_8h.html#a54">PVRTModelPODFlattenToWorldSpace</a>(<a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> &amp;in, <a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> &amp;out);
  880. 00880
  881. 00881 <span class="preprocessor">#endif </span><span class="comment">/* _PVRTMODELPOD_H_ */</span>
  882. 00882
  883. 00883 <span class="comment">/*****************************************************************************</span>
  884. 00884 <span class="comment"> End of file (PVRTModelPOD.h)</span>
  885. 00885 <span class="comment">*****************************************************************************/</span>
  886. 00886
  887. </pre></div><br>
  888. <br>
  889. <P align=left><FONT size=2><STRONG><A
  890. href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> ©
  891. 1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
  892. <hr>
  893. <address style="align: left;"><small><FONT color=f0f>
  894. Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
  895. </body>
  896. </html>