aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html
blob: 3825eb8e33af3d6bb33d3a258f088f54fc41740f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Irrlicht 3D Engine: ISkinnedMesh.h Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="irrlichtlogo.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Irrlicht 3D Engine
   
   </div>
   
  </td>
  
  
  
   
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
   
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="dynsections.js"></script>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('_i_skinned_mesh_8h.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">ISkinnedMesh.h</div>  </div>
</div>
<div class="contents">
<a href="_i_skinned_mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Copyright (C) 2002-2012 Nikolaus Gebhardt</span>
<a name="l00002"></a>00002 <span class="comment">// This file is part of the &quot;Irrlicht Engine&quot;.</span>
<a name="l00003"></a>00003 <span class="comment">// For conditions of distribution and use, see copyright notice in irrlicht.h</span>
<a name="l00004"></a>00004 
<a name="l00005"></a>00005 <span class="preprocessor">#ifndef __I_SKINNED_MESH_H_INCLUDED__</span>
<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#define __I_SKINNED_MESH_H_INCLUDED__</span>
<a name="l00007"></a>00007 <span class="preprocessor"></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;<a class="code" href="irr_array_8h.html">irrArray.h</a>&quot;</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;<a class="code" href="_i_bone_scene_node_8h.html">IBoneSceneNode.h</a>&quot;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;<a class="code" href="_i_animated_mesh_8h.html">IAnimatedMesh.h</a>&quot;</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;<a class="code" href="_s_skin_mesh_buffer_8h.html">SSkinMeshBuffer.h</a>&quot;</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 <span class="keyword">namespace </span>irr
<a name="l00014"></a>00014 {
<a name="l00015"></a>00015 <span class="keyword">namespace </span>scene
<a name="l00016"></a>00016 {
<a name="l00017"></a>00017 
<a name="l00018"></a><a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314c">00018</a>     <span class="keyword">enum</span> <a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314c">E_INTERPOLATION_MODE</a>
<a name="l00019"></a>00019     {
<a name="l00020"></a>00020         <span class="comment">// constant does use the current key-values without interpolation</span>
<a name="l00021"></a><a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314caba5f84c1ec6dc808bccdef643643fb66">00021</a>         <a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314caba5f84c1ec6dc808bccdef643643fb66">EIM_CONSTANT</a> = 0,
<a name="l00022"></a>00022 
<a name="l00023"></a>00023         <span class="comment">// linear interpolation</span>
<a name="l00024"></a><a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314caeb0eee69d713313af0d1223d70da7b46">00024</a>         <a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314caeb0eee69d713313af0d1223d70da7b46">EIM_LINEAR</a>,
<a name="l00025"></a>00025 
<a name="l00027"></a><a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314ca7c2057a6943b57b8adb3358b3b33bbdf">00027</a>         <a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314ca7c2057a6943b57b8adb3358b3b33bbdf" title="count of all available interpolation modes">EIM_COUNT</a>
<a name="l00028"></a>00028     };
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00032"></a><a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html">00032</a>     <span class="keyword">class </span><a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html" title="Interface for using some special functions of Skinned meshes.">ISkinnedMesh</a> : <span class="keyword">public</span> <a class="code" href="classirr_1_1scene_1_1_i_animated_mesh.html" title="Interface for an animated mesh.">IAnimatedMesh</a>
<a name="l00033"></a>00033     {
<a name="l00034"></a>00034     <span class="keyword">public</span>:
<a name="l00035"></a>00035 
<a name="l00037"></a>00037 
<a name="l00038"></a>00038         <span class="keyword">virtual</span> <a class="code" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a7715fb82ffec225d2fd9b8aa860e3c38" title="Gets joint count.">getJointCount</a>() <span class="keyword">const</span> = 0;
<a name="l00039"></a>00039 
<a name="l00041"></a>00041 
<a name="l00044"></a>00044         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceirr.html#a9395eaea339bcb546b319e9c96bf7410" title="8 bit character variable.">c8</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#ab28aed78a7e2eeaa20ba7eb0eb082ba4" title="Gets the name of a joint.">getJointName</a>(<a class="code" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> number) <span class="keyword">const</span> = 0;
<a name="l00045"></a>00045 
<a name="l00047"></a>00047 
<a name="l00049"></a>00049         <span class="keyword">virtual</span> <a class="code" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#ace7288f54490d017efebe24c3eb46ab8" title="Gets a joint number from its name.">getJointNumber</a>(<span class="keyword">const</span> <a class="code" href="namespaceirr.html#a9395eaea339bcb546b319e9c96bf7410" title="8 bit character variable.">c8</a>* name) <span class="keyword">const</span> = 0;
<a name="l00050"></a>00050 
<a name="l00052"></a>00052 
<a name="l00057"></a>00057         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a1d7d56472adeb21aada79c361bf142be" title="Use animation from another mesh.">useAnimationFrom</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html" title="Interface for using some special functions of Skinned meshes.">ISkinnedMesh</a> *mesh) = 0;
<a name="l00058"></a>00058 
<a name="l00060"></a>00060 
<a name="l00063"></a>00063         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a19f264883a006d68b44f8b81d8ff5927" title="Update Normals when Animating.">updateNormalsWhenAnimating</a>(<span class="keywordtype">bool</span> on) = 0;
<a name="l00064"></a>00064 
<a name="l00066"></a>00066         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#afbb087c018dac08007ff5d22c6fe86b9" title="Sets Interpolation Mode.">setInterpolationMode</a>(<a class="code" href="namespaceirr_1_1scene.html#a26f30865cf5527e7255a8495e280314c">E_INTERPOLATION_MODE</a> mode) = 0;
<a name="l00067"></a>00067 
<a name="l00069"></a>00069         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a5cbb9dad48413636f9e9c2ac9201cfae" title="Animates this mesh&#39;s joints based on frame input.">animateMesh</a>(<a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> frame, <a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> blend)=0;
<a name="l00070"></a>00070 
<a name="l00072"></a>00072         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a3bd5dd1429c13bce259557875a5bbe7d" title="Preforms a software skin on this mesh based of joint positions.">skinMesh</a>() = 0;
<a name="l00073"></a>00073 
<a name="l00075"></a>00075 
<a name="l00076"></a>00076         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#ae63f3f1a74bf38c4b5113e3a5b96c0f3" title="converts the vertex type of all meshbuffers to tangents.">convertMeshToTangents</a>() = 0;
<a name="l00077"></a>00077 
<a name="l00079"></a>00079         <span class="comment">/* This feature is not implementated in Irrlicht yet */</span>
<a name="l00080"></a>00080         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a42ff192210ffc61a4c9fe8184b466b17" title="Allows to enable hardware skinning.">setHardwareSkinning</a>(<span class="keywordtype">bool</span> on) = 0;
<a name="l00081"></a>00081 
<a name="l00083"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html">00083</a>         <span class="keyword">struct </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html" title="A vertex weight.">SWeight</a>
<a name="l00084"></a>00084         {
<a name="l00086"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#acc9e699fd4dc2ba4f5a8f0cc1b2f99d4">00086</a>             <a class="code" href="namespaceirr.html#ae9f8ec82692ad3b83c21f555bfa70bcc" title="16 bit unsigned variable.">u16</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#acc9e699fd4dc2ba4f5a8f0cc1b2f99d4" title="Index of the mesh buffer.">buffer_id</a>; <span class="comment">//I doubt 32bits is needed</span>
<a name="l00087"></a>00087 
<a name="l00089"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#aeccead1b5bb574aa4232c693a55dfed7">00089</a>             <a class="code" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#aeccead1b5bb574aa4232c693a55dfed7" title="Index of the vertex.">vertex_id</a>; <span class="comment">//Store global ID here</span>
<a name="l00090"></a>00090 
<a name="l00092"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#a090246843a5a57bb5ac1afb15c02538b">00092</a>             <a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#a090246843a5a57bb5ac1afb15c02538b" title="Weight Strength/Percentage (0-1)">strength</a>;
<a name="l00093"></a>00093 
<a name="l00094"></a>00094         <span class="keyword">private</span>:
<a name="l00096"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#a9fe6767b50580f2235b3a86dda1e5b7c">00096</a>             <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html#a9fe6767b50580f2235b3a86dda1e5b7c" title="Internal members used by CSkinnedMesh.">CSkinnedMesh</a>;
<a name="l00097"></a>00097             <span class="keywordtype">bool</span> *Moved;
<a name="l00098"></a>00098             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> StaticPos;
<a name="l00099"></a>00099             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> StaticNormal;
<a name="l00100"></a>00100         };
<a name="l00101"></a>00101 
<a name="l00102"></a>00102 
<a name="l00104"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html">00104</a>         <span class="keyword">struct </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html" title="Animation keyframe which describes a new position.">SPositionKey</a>
<a name="l00105"></a>00105         {
<a name="l00106"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html#af49ab8dba76caf8befa4534371570bdc">00106</a>             <a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html#af49ab8dba76caf8befa4534371570bdc">frame</a>;
<a name="l00107"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html#a7578dc83cfc3751ad704c1925358bafb">00107</a>             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html#a7578dc83cfc3751ad704c1925358bafb">position</a>;
<a name="l00108"></a>00108         };
<a name="l00109"></a>00109 
<a name="l00111"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html">00111</a>         <span class="keyword">struct </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html" title="Animation keyframe which describes a new scale.">SScaleKey</a>
<a name="l00112"></a>00112         {
<a name="l00113"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html#a5b8d8c1992159e5ac2ff04971d39937b">00113</a>             <a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html#a5b8d8c1992159e5ac2ff04971d39937b">frame</a>;
<a name="l00114"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html#a76efbacf711296d308649819c4444991">00114</a>             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html#a76efbacf711296d308649819c4444991">scale</a>;
<a name="l00115"></a>00115         };
<a name="l00116"></a>00116 
<a name="l00118"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html">00118</a>         <span class="keyword">struct </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html" title="Animation keyframe which describes a new rotation.">SRotationKey</a>
<a name="l00119"></a>00119         {
<a name="l00120"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html#aeef03ed92fab6225d0d05c16310525fb">00120</a>             <a class="code" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07" title="32 bit floating point variable.">f32</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html#aeef03ed92fab6225d0d05c16310525fb">frame</a>;
<a name="l00121"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html#ab5fb9e384ec2a0b53ebac672f4b66773">00121</a>             <a class="code" href="classirr_1_1core_1_1quaternion.html" title="Quaternion class for representing rotations.">core::quaternion</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html#ab5fb9e384ec2a0b53ebac672f4b66773">rotation</a>;
<a name="l00122"></a>00122         };
<a name="l00123"></a>00123 
<a name="l00125"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html">00125</a>         <span class="keyword">struct </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a>
<a name="l00126"></a>00126         {
<a name="l00127"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a03896227a712b8e52a6e7ee5a2a6f3b2">00127</a>             <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a03896227a712b8e52a6e7ee5a2a6f3b2">SJoint</a>() : UseAnimationFrom(0), GlobalSkinningSpace(false),
<a name="l00128"></a>00128                 positionHint(-1),scaleHint(-1),rotationHint(-1)
<a name="l00129"></a>00129             {
<a name="l00130"></a>00130             }
<a name="l00131"></a>00131 
<a name="l00133"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a1ec471464704aa4c3a7c83fe3c5625d9">00133</a>             <a class="code" href="classirr_1_1core_1_1string.html">core::stringc</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a1ec471464704aa4c3a7c83fe3c5625d9" title="The name of this joint.">Name</a>;
<a name="l00134"></a>00134 
<a name="l00136"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a2db3a83c0672a5209ae9b9a8acaa4d8d">00136</a>             <a class="code" href="classirr_1_1core_1_1_c_matrix4.html" title="4x4 matrix. Mostly used as transformation matrix for 3d calculations.">core::matrix4</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a2db3a83c0672a5209ae9b9a8acaa4d8d" title="Local matrix of this joint.">LocalMatrix</a>;
<a name="l00137"></a>00137 
<a name="l00139"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ab73e76450062d8761d59f4bd1c8bd21f">00139</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SJoint*&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ab73e76450062d8761d59f4bd1c8bd21f" title="List of child joints.">Children</a>;
<a name="l00140"></a>00140 
<a name="l00142"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#af156b11bdfe0702e27bffa5395690eb8">00142</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;u32&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#af156b11bdfe0702e27bffa5395690eb8" title="List of attached meshes.">AttachedMeshes</a>;
<a name="l00143"></a>00143 
<a name="l00145"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a709730c20d5c391e9dc3776fbdc1fce8">00145</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SPositionKey&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a709730c20d5c391e9dc3776fbdc1fce8" title="Animation keys causing translation change.">PositionKeys</a>;
<a name="l00146"></a>00146 
<a name="l00148"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#aaf8b629afa21dc3a887c0e2bfe253eac">00148</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SScaleKey&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#aaf8b629afa21dc3a887c0e2bfe253eac" title="Animation keys causing scale change.">ScaleKeys</a>;
<a name="l00149"></a>00149 
<a name="l00151"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a4fbaac53f1fe83c5059e1ca12bf33fc5">00151</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SRotationKey&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a4fbaac53f1fe83c5059e1ca12bf33fc5" title="Animation keys causing rotation change.">RotationKeys</a>;
<a name="l00152"></a>00152 
<a name="l00154"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a9e3cce49b0ce616ce1af590080ac3dd6">00154</a>             <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SWeight&gt;</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a9e3cce49b0ce616ce1af590080ac3dd6" title="Skin weights.">Weights</a>;
<a name="l00155"></a>00155 
<a name="l00157"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a633203c1f514622febdad45edd06b9a5">00157</a>             <a class="code" href="classirr_1_1core_1_1_c_matrix4.html" title="4x4 matrix. Mostly used as transformation matrix for 3d calculations.">core::matrix4</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a633203c1f514622febdad45edd06b9a5" title="Unnecessary for loaders, will be overwritten on finalize.">GlobalMatrix</a>;
<a name="l00158"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a97acedfcb8e9f3e42066d2ec5d6fd9d9">00158</a>             <a class="code" href="classirr_1_1core_1_1_c_matrix4.html" title="4x4 matrix. Mostly used as transformation matrix for 3d calculations.">core::matrix4</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a97acedfcb8e9f3e42066d2ec5d6fd9d9">GlobalAnimatedMatrix</a>;
<a name="l00159"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a85a41206d58fcf9c1137816b2458f6df">00159</a>             <a class="code" href="classirr_1_1core_1_1_c_matrix4.html" title="4x4 matrix. Mostly used as transformation matrix for 3d calculations.">core::matrix4</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a85a41206d58fcf9c1137816b2458f6df">LocalAnimatedMatrix</a>;
<a name="l00160"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#afab6f8e97ab27f9ccb38414b525d3be8">00160</a>             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#afab6f8e97ab27f9ccb38414b525d3be8">Animatedposition</a>;
<a name="l00161"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#af0c44ca1f439f609f65364d2ad80a58a">00161</a>             <a class="code" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#af0c44ca1f439f609f65364d2ad80a58a">Animatedscale</a>;
<a name="l00162"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ac2339f830add4abe945d6a0d54cc0a98">00162</a>             <a class="code" href="classirr_1_1core_1_1quaternion.html" title="Quaternion class for representing rotations.">core::quaternion</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ac2339f830add4abe945d6a0d54cc0a98">Animatedrotation</a>;
<a name="l00163"></a>00163 
<a name="l00164"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ad260047cd71d4276f095c169f8f3da72">00164</a>             <a class="code" href="classirr_1_1core_1_1_c_matrix4.html" title="4x4 matrix. Mostly used as transformation matrix for 3d calculations.">core::matrix4</a> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#ad260047cd71d4276f095c169f8f3da72">GlobalInversedMatrix</a>; <span class="comment">//the x format pre-calculates this</span>
<a name="l00165"></a>00165 
<a name="l00166"></a>00166         <span class="keyword">private</span>:
<a name="l00168"></a><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a9fe6767b50580f2235b3a86dda1e5b7c">00168</a>             <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html#a9fe6767b50580f2235b3a86dda1e5b7c" title="Internal members used by CSkinnedMesh.">CSkinnedMesh</a>;
<a name="l00169"></a>00169 
<a name="l00170"></a>00170             <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *UseAnimationFrom;
<a name="l00171"></a>00171             <span class="keywordtype">bool</span> GlobalSkinningSpace;
<a name="l00172"></a>00172 
<a name="l00173"></a>00173             <a class="code" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> positionHint;
<a name="l00174"></a>00174             <a class="code" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> scaleHint;
<a name="l00175"></a>00175             <a class="code" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> rotationHint;
<a name="l00176"></a>00176         };
<a name="l00177"></a>00177 
<a name="l00178"></a>00178 
<a name="l00179"></a>00179         <span class="comment">//Interface for the mesh loaders (finalize should lock these functions, and they should have some prefix like loader_</span>
<a name="l00180"></a>00180 
<a name="l00181"></a>00181         <span class="comment">//these functions will use the needed arrays, set values, etc to help the loaders</span>
<a name="l00182"></a>00182 
<a name="l00184"></a>00184         <span class="keyword">virtual</span> <a class="code" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">core::array&lt;SSkinMeshBuffer*&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a5c46b784d6e8b7479e6f630377ab42ef" title="exposed for loaders: to add mesh buffers">getMeshBuffers</a>() = 0;
<a name="l00185"></a>00185 
<a name="l00187"></a>00187         <span class="keyword">virtual</span> <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SJoint*&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a4fcdc38666f24a092191668ff909936f" title="exposed for loaders: joints list">getAllJoints</a>() = 0;
<a name="l00188"></a>00188 
<a name="l00190"></a>00190         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1array.html">core::array&lt;SJoint*&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a4fcdc38666f24a092191668ff909936f" title="exposed for loaders: joints list">getAllJoints</a>() <span class="keyword">const</span> = 0;
<a name="l00191"></a>00191 
<a name="l00193"></a>00193         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a83549df06904513c439c92e34b424b02" title="loaders should call this after populating the mesh">finalize</a>() = 0;
<a name="l00194"></a>00194 
<a name="l00196"></a>00196         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_s_skin_mesh_buffer.html" title="A mesh buffer able to choose between S3DVertex2TCoords, S3DVertex and S3DVertexTangents at runtime...">SSkinMeshBuffer</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#abc55b0dc2c1e80ef5fa4cab8e17b76af" title="Adds a new meshbuffer to the mesh, access it as last one.">addMeshBuffer</a>() = 0;
<a name="l00197"></a>00197 
<a name="l00199"></a>00199         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a713edfbc7f3e9394487882156dc6fe2f" title="Adds a new joint to the mesh, access it as last one.">addJoint</a>(<a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *parent=0) = 0;
<a name="l00200"></a>00200 
<a name="l00202"></a>00202         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_weight.html" title="A vertex weight.">SWeight</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a6b79ee2544eb0ffe8501c06fd347ea89" title="Adds a new weight to the mesh, access it as last one.">addWeight</a>(<a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *joint) = 0;
<a name="l00203"></a>00203 
<a name="l00205"></a>00205         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_position_key.html" title="Animation keyframe which describes a new position.">SPositionKey</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a4441937c52c1fdf3d2bbaeff1406716d" title="Adds a new position key to the mesh, access it as last one.">addPositionKey</a>(<a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *joint) = 0;
<a name="l00207"></a>00207         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_scale_key.html" title="Animation keyframe which describes a new scale.">SScaleKey</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a3601a01c99594fe8db3cccaec89df7d6" title="Adds a new scale key to the mesh, access it as last one.">addScaleKey</a>(<a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *joint) = 0;
<a name="l00209"></a>00209         <span class="keyword">virtual</span> <a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_rotation_key.html" title="Animation keyframe which describes a new rotation.">SRotationKey</a>* <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#ab5d41c1fc22de5d7cb9c376d2a873ab9" title="Adds a new rotation key to the mesh, access it as last one.">addRotationKey</a>(<a class="code" href="structirr_1_1scene_1_1_i_skinned_mesh_1_1_s_joint.html" title="Joints.">SJoint</a> *joint) = 0;
<a name="l00210"></a>00210 
<a name="l00212"></a>00212         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_skinned_mesh.html#a2131a8693a84e29036ffff69955a2ec1" title="Check if the mesh is non-animated.">isStatic</a>()=0;
<a name="l00213"></a>00213     };
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 } <span class="comment">// end namespace scene</span>
<a name="l00216"></a>00216 } <span class="comment">// end namespace irr</span>
<a name="l00217"></a>00217 
<a name="l00218"></a>00218 <span class="preprocessor">#endif</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span>
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="_i_skinned_mesh_8h.html">ISkinnedMesh.h</a>      </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


    <li class="footer">
<a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
Engine</a> Documentation &copy; 2003-2012 by Nikolaus Gebhardt. Generated on Sun Nov 17 2013 20:18:40 for Irrlicht 3D Engine by
<a href="http://www.doxygen.org/index.html" target="_blank">Doxygen</a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>