source: NonGTP/FCollada/Documentation/_f_c_d_scene_node_8h-source.html @ 964

Revision 964, 20.3 KB checked in by igarcia, 18 years ago (diff)
Line 
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>FCollada: FCDocument/FCDSceneNode.h Source File</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.4.6-NO -->
8<div class="tabs">
9  <ul>
10    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11    <li><a href="modules.html"><span>Modules</span></a></li>
12    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13    <li><a href="classes.html"><span>Classes</span></a></li>
14    <li id="current"><a href="files.html"><span>Files</span></a></li>
15    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
16  </ul></div>
17<div class="tabs">
18  <ul>
19    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
20    <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
21  </ul></div>
22<h1>FCDocument/FCDSceneNode.h</h1><a href="_f_c_d_scene_node_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
23<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2005-2006 Feeling Software Inc.</span>
24<a name="l00003"></a>00003 <span class="comment">    MIT License: http://www.opensource.org/licenses/mit-license.php</span>
25<a name="l00004"></a>00004 <span class="comment">*/</span>
26<a name="l00005"></a>00005 <span class="comment">/*</span>
27<a name="l00006"></a>00006 <span class="comment">    Based on the FS Import classes:</span>
28<a name="l00007"></a>00007 <span class="comment">    Copyright (C) 2005-2006 Feeling Software Inc</span>
29<a name="l00008"></a>00008 <span class="comment">    Copyright (C) 2005-2006 Autodesk Media Entertainment</span>
30<a name="l00009"></a>00009 <span class="comment">    MIT License: http://www.opensource.org/licenses/mit-license.php</span>
31<a name="l00010"></a>00010 <span class="comment">*/</span>
32<a name="l00011"></a>00011
33<a name="l00017"></a>00017 <span class="preprocessor">#ifndef _FCD_SCENE_NODE_</span>
34<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define _FCD_SCENE_NODE_</span>
35<a name="l00019"></a>00019 <span class="preprocessor"></span>
36<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="_f_c_d_entity_8h.html">FCDocument/FCDEntity.h</a>"</span>
37<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="_f_c_d_transform_8h.html">FCDocument/FCDTransform.h</a>"</span> 
38<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="_f_c_d_entity_instance_8h.html">FCDocument/FCDEntityInstance.h</a>"</span> 
39<a name="l00024"></a>00024 <span class="keyword">class </span><a class="code" href="class_f_c_document.html">FCDocument</a>;
40<a name="l00025"></a>00025 <span class="keyword">class </span><a class="code" href="class_f_c_d_entity_instance.html">FCDEntityInstance</a>;
41<a name="l00026"></a>00026 <span class="keyword">class </span><a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>;
42<a name="l00027"></a>00027 <span class="keyword">class </span><a class="code" href="class_f_c_d_transform.html">FCDTransform</a>;
43<a name="l00028"></a>00028 <span class="keyword">class </span><a class="code" href="class_f_c_d_extra.html">FCDExtra</a>;
44<a name="l00029"></a>00029 <span class="keyword">class </span><a class="code" href="class_f_c_d_t_rotation.html">FCDTRotation</a>;
45<a name="l00030"></a>00030 <span class="keyword">class </span><a class="code" href="class_f_c_d_t_translation.html">FCDTTranslation</a>;
46<a name="l00031"></a>00031 <span class="keyword">class </span><a class="code" href="class_f_c_d_t_scale.html">FCDTScale</a>;
47<a name="l00032"></a>00032 <span class="keyword">class </span><a class="code" href="class_f_c_d_t_skew.html">FCDTSkew</a>;
48<a name="l00033"></a>00033 <span class="keyword">class </span><a class="code" href="class_f_c_d_t_look_at.html">FCDTLookAt</a>;
49<a name="l00034"></a><a class="code" href="_f_c_d_scene_node_8h.html#5130c6b9f831c539f671c15bea1a2742">00034</a> <span class="keyword">class </span><a class="code" href="class_f_c_d_t_matrix.html">FCDTMatrix</a>;
50<a name="l00035"></a>00035
51<a name="l00036"></a>00036 <span class="keyword">typedef</span> <a class="code" href="classvector.html">vector&lt;FCDSceneNode*&gt;</a> <a class="code" href="classvector.html">FCDSceneNodeList</a>;
52<a name="l00037"></a><a class="code" href="_f_c_d_scene_node_8h.html#a877bfde5a5a0a669a79c1a858c7955a">00037</a> <span class="keyword">typedef</span> <a class="code" href="classvector.html">vector&lt;FCDEntityInstance*&gt;</a> <a class="code" href="classvector.html">FCDEntityInstanceList</a>;
53<a name="l00038"></a><a class="code" href="_f_c_d_scene_node_8h.html#6fdfc8b84f9f763a57d60257cd66fc74">00038</a> <span class="keyword">typedef</span> <a class="code" href="classvector.html">vector&lt;FCDTransform*&gt;</a> <a class="code" href="classvector.html">FCDTransformList</a>;
54<a name="l00053"></a><a class="code" href="class_f_c_d_scene_node.html">00053</a> <span class="keyword">class </span>FCOLLADA_EXPORT <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a> : <span class="keyword">public</span> <a class="code" href="class_f_c_d_entity.html">FCDEntity</a>
55<a name="l00054"></a>00054 {
56<a name="l00055"></a>00055 <span class="keyword">private</span>:
57<a name="l00056"></a>00056     <a class="code" href="_f_u_object_type_8h.html#8124b8a8706cd10260f8cd5a7bd8e691">DeclareObjectType</a>;
58<a name="l00057"></a>00057 <a class="code" href="classvector.html">FCDSceneNodeList</a> parents;
59<a name="l00058"></a>00058 <a class="code" href="classvector.html">FCDSceneNodeList</a> children;
60<a name="l00059"></a>00059 <a class="code" href="classvector.html">FCDTransformList</a> transforms;
61<a name="l00060"></a>00060 <a class="code" href="classvector.html">FCDEntityInstanceList</a> instances;
62<a name="l00061"></a>00061
63<a name="l00062"></a>00062     <span class="comment">// Visibility parameter. Should be a boolean, but is animated</span>
64<a name="l00063"></a>00063 <span class="keywordtype">float</span> visibility; <span class="comment">// Maya-specific</span>
65<a name="l00064"></a>00064
66<a name="l00065"></a>00065     <span class="comment">// The number of entities that target this node</span>
67<a name="l00066"></a>00066     uint32 targetCount;
68<a name="l00067"></a>00067
69<a name="l00068"></a>00068     <span class="comment">// Whether this node is a joint.</span>
70<a name="l00069"></a>00069 <span class="keywordtype">bool</span> isJoint;
71<a name="l00070"></a>00070
72<a name="l00071"></a>00071 <span class="keyword">public</span>:
73<a name="l00077"></a>00077     <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>(<a class="code" href="class_f_c_document.html">FCDocument</a>* document);
74<a name="l00078"></a>00078
75<a name="l00082"></a>00082 <span class="keyword">virtual</span> ~<a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>();
76<a name="l00083"></a>00083
77<a name="l00086"></a><a class="code" href="class_f_c_d_scene_node.html#5dad40efa762d2cb7b3df38288c7f5aa">00086</a>     <span class="keyword">inline</span> <span class="keyword">virtual</span> Type <a class="code" href="class_f_c_d_entity.html#bfd4312a7124f92364c1e6517c7e60ba">GetType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SCENE_NODE; }
78<a name="l00087"></a>00087
79<a name="l00090"></a><a class="code" href="class_f_c_d_scene_node.html#cce55d7e3bbcb7219e1f568ade78a33e">00090</a>     <span class="keyword">inline</span> size_t GetParentCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> parents.size(); };
80<a name="l00091"></a>00091
81<a name="l00096"></a><a class="code" href="class_f_c_d_scene_node.html#e8d1c192e6c14a332d5e60b8956b00f5">00096</a>     <span class="keyword">inline</span> <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* GetParent(size_t index = 0) { <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index == 0 || index &lt; parents.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> (!parents.empty()) ? parents.at(index) : NULL; }
82<a name="l00097"></a><a class="code" href="class_f_c_d_scene_node.html#95e707d6ae9e15397c5c2128e0ddea86">00097</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* GetParent(size_t index = 0)<span class="keyword"> const </span>{ <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index == 0 || index &lt; parents.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> (!parents.empty()) ? parents.at(index) : NULL; }
83<a name="l00101"></a><a class="code" href="class_f_c_d_scene_node.html#3d626d46b55be55ecebdb44036705c62">00101</a>     <span class="keyword">inline</span> size_t GetChildrenCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> children.size(); };
84<a name="l00102"></a>00102
85<a name="l00107"></a><a class="code" href="class_f_c_d_scene_node.html#4137a5a0035341285adc7ae30cf4523b">00107</a>     <span class="keyword">inline</span> <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* GetChild(size_t index) { <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; children.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> children.at(index); }
86<a name="l00108"></a><a class="code" href="class_f_c_d_scene_node.html#48e743198b721783eec2058f719c4c8d">00108</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* GetChild(size_t index)<span class="keyword"> const </span>{ <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; children.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> children.at(index); }
87<a name="l00112"></a><a class="code" href="class_f_c_d_scene_node.html#fee23cb728eb5d766fb2ea237d93b2db">00112</a>     <span class="keyword">inline</span> <a class="code" href="classvector.html">FCDSceneNodeList</a>&amp; GetChildren() { <span class="keywordflow">return</span> children; }
88<a name="l00113"></a><a class="code" href="class_f_c_d_scene_node.html#25553c851cb0bf051eafbfa136b9d61f">00113</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classvector.html">FCDSceneNodeList</a>&amp; GetChildren()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> children; }
89<a name="l00117"></a>00117     <a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* AddChildNode();
90<a name="l00118"></a>00118
91<a name="l00124"></a>00124 <span class="keywordtype">bool</span> AddChildNode(<a class="code" href="class_f_c_d_scene_node.html">FCDSceneNode</a>* sceneNode);
92<a name="l00125"></a>00125
93<a name="l00128"></a><a class="code" href="class_f_c_d_scene_node.html#191a57fdbb1ae5ddab8b45b4d4984e63">00128</a>     <span class="keyword">inline</span> size_t GetInstanceCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> instances.size(); };
94<a name="l00129"></a>00129
95<a name="l00134"></a><a class="code" href="class_f_c_d_scene_node.html#5289e4d1feedb3af83a0719d04da348e">00134</a>     <span class="keyword">inline</span> <a class="code" href="class_f_c_d_entity_instance.html">FCDEntityInstance</a>* GetInstance(size_t index) { <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; instances.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> instances.at(index); }
96<a name="l00135"></a><a class="code" href="class_f_c_d_scene_node.html#daee3075febbaa2443fba9bd6c1fe56b">00135</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="class_f_c_d_entity_instance.html">FCDEntityInstance</a>* GetInstance(size_t index)<span class="keyword"> const </span>{ <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; instances.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> instances.at(index); }
97<a name="l00139"></a><a class="code" href="class_f_c_d_scene_node.html#6ed7654648f65e5ca95438ab734dac6c">00139</a>     <span class="keyword">inline</span> <a class="code" href="classvector.html">FCDEntityInstanceList</a>&amp; GetInstances() { <span class="keywordflow">return</span> instances; }
98<a name="l00140"></a><a class="code" href="class_f_c_d_scene_node.html#c6d305115148be718268247de0541a40">00140</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classvector.html">FCDEntityInstanceList</a>&amp; GetInstances()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> instances; }
99<a name="l00150"></a>00150     <a class="code" href="class_f_c_d_entity_instance.html">FCDEntityInstance</a>* AddInstance(<a class="code" href="class_f_c_d_entity.html">FCDEntity</a>* entity);
100<a name="l00151"></a>00151
101<a name="l00154"></a>00154 <span class="keywordtype">void</span> ReleaseInstance(<a class="code" href="class_f_c_d_entity_instance.html">FCDEntityInstance</a>* instance);
102<a name="l00155"></a>00155
103<a name="l00158"></a><a class="code" href="class_f_c_d_scene_node.html#3767ecd3e9c672a4e13e7185ccd7305c">00158</a>     <span class="keyword">inline</span> size_t GetTransformCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> transforms.size(); };
104<a name="l00159"></a>00159
105<a name="l00164"></a><a class="code" href="class_f_c_d_scene_node.html#77f7cd7f791b74d161f5b0a88d21018c">00164</a>     <span class="keyword">inline</span> <a class="code" href="class_f_c_d_transform.html">FCDTransform</a>* GetTransform(size_t index) { <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; transforms.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> transforms.at(index); }
106<a name="l00165"></a><a class="code" href="class_f_c_d_scene_node.html#a21348079b3e12aaa49ffa80c931bc97">00165</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="class_f_c_d_transform.html">FCDTransform</a>* GetTransform(size_t index)<span class="keyword"> const </span>{ <a class="code" href="_f_u_assert_8h.html#72b8444eb608787f1db6bf1d53e0310f">FUAssert</a>(index &lt; transforms.size(), <span class="keywordflow">return</span> NULL); <span class="keywordflow">return</span> transforms.at(index); }
107<a name="l00169"></a><a class="code" href="class_f_c_d_scene_node.html#ae060361a7b43e664b66a85b019e5d46">00169</a>     <span class="keyword">inline</span> <a class="code" href="classvector.html">FCDTransformList</a>&amp; GetTransforms() { <span class="keywordflow">return</span> transforms; }
108<a name="l00170"></a><a class="code" href="class_f_c_d_scene_node.html#07233cd2933c83a3613ee3f2106983a6">00170</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classvector.html">FCDTransformList</a>&amp; GetTransforms()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> transforms; }
109<a name="l00181"></a>00181 <a class="code" href="class_f_c_d_transform.html">FCDTransform</a>* AddTransform(<a class="code" href="class_f_c_d_transform.html#13e561c5e53aeaf84dedf4661cdc8921">FCDTransform::Type</a> type, size_t index = (size_t)-1);
110<a name="l00182"></a>00182
111<a name="l00185"></a>00185 <span class="keywordtype">void</span> ReleaseTransform(<a class="code" href="class_f_c_d_transform.html">FCDTransform</a>* transform);
112<a name="l00186"></a>00186
113<a name="l00187"></a>00187
114<a name="l00194"></a>00194 <span class="keyword">virtual</span> <a class="code" href="class_f_c_d_entity.html">FCDEntity</a>* <a class="code" href="class_f_c_d_entity.html#90832c3838b2eaf5e5b346052ec2331e">FindDaeId</a>(<span class="keyword">const</span> string&amp; daeId);
115<a name="l00195"></a>00195
116<a name="l00201"></a><a class="code" href="class_f_c_d_scene_node.html#7793b12c203624d5e1604b9f996b78bd">00201</a>     <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; GetVisibility() { <span class="keywordflow">return</span> visibility; }
117<a name="l00202"></a><a class="code" href="class_f_c_d_scene_node.html#339793143d423269112076add8234272">00202</a>     <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; GetVisibility()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> visibility; }
118<a name="l00208"></a><a class="code" href="class_f_c_d_scene_node.html#03230a78e14fc4be25c8e0b60b4e0222">00208</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> SetVisibility(<span class="keywordtype">bool</span> isVisible) { visibility = isVisible; }
119<a name="l00209"></a>00209
120<a name="l00212"></a><a class="code" href="class_f_c_d_scene_node.html#0c06b667e6f1545745e0ce30f8f8a044">00212</a>     <span class="keyword">inline</span> <span class="keywordtype">bool</span> IsTarget()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> targetCount &gt; 0; }
121<a name="l00213"></a>00213
122<a name="l00217"></a><a class="code" href="class_f_c_d_scene_node.html#abc87983cba1f9e7dbe7a10e3c2138e8">00217</a>     <span class="keywordtype">bool</span> IsJoint()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isJoint; }
123<a name="l00218"></a>00218
124<a name="l00222"></a><a class="code" href="class_f_c_d_scene_node.html#6f264292c81b39bcb9e349313dd08ba9">00222</a>     <span class="keywordtype">void</span> SetJointFlag(<span class="keywordtype">bool</span> _isJoint) { isJoint = _isJoint; }
125<a name="l00223"></a>00223
126<a name="l00227"></a>00227 <a class="code" href="class_f_m_matrix44.html">FMMatrix44</a> ToMatrix() <span class="keyword">const</span>;
127<a name="l00228"></a>00228
128<a name="l00233"></a>00233 <span class="keywordtype">void</span> GenerateSampledMatrixAnimation(<a class="code" href="classvector.html">FloatList</a>&amp; keys, <a class="code" href="classvector.html">FMMatrix44List</a>&amp; values);
129<a name="l00234"></a>00234
130<a name="l00237"></a><a class="code" href="class_f_c_d_scene_node.html#8d2667408080453df148768c648695e9">00237</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> IncrementTargetCount() { ++targetCount; }
131<a name="l00238"></a>00238
132<a name="l00241"></a><a class="code" href="class_f_c_d_scene_node.html#80bef3c1b93bc7f746a4d2af9c4e5883">00241</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> DecrementTargetCount() { <span class="keywordflow">if</span> (targetCount &gt; 0) --targetCount; }
133<a name="l00242"></a>00242
134<a name="l00247"></a>00247 <span class="keyword">virtual</span> <a class="code" href="class_f_u_status.html">FUStatus</a> <a class="code" href="class_f_c_d_entity.html#8e32fcc93de76acc4b606db7b5b83890">LoadFromXML</a>(xmlNode* sceneNode);
135<a name="l00248"></a>00248
136<a name="l00252"></a>00252 <span class="keyword">virtual</span> xmlNode* <a class="code" href="class_f_c_d_entity.html#b27f0c175c3f8fd7064cde48bcf1d7a0">WriteToXML</a>(xmlNode* parentNode) <span class="keyword">const</span>;
137<a name="l00253"></a>00253
138<a name="l00254"></a>00254 <span class="keyword">private</span>:
139<a name="l00255"></a>00255 <a class="code" href="class_f_u_status.html">FUStatus</a> LoadFromExtra();
140<a name="l00256"></a>00256 <span class="keywordtype">void</span> BindMaterial(xmlNode* node);
141<a name="l00257"></a>00257 <span class="keywordtype">void</span> WriteToNodeXML(xmlNode* node, <span class="keywordtype">bool</span> isVisualScene) <span class="keyword">const</span>;
142<a name="l00258"></a>00258 };
143<a name="l00259"></a>00259
144<a name="l00260"></a>00260 <span class="preprocessor">#endif // _FCD_SCENE_NODE_</span>
145</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri May 12 16:44:39 2006 for FCollada by&nbsp;
146<a href="http://www.doxygen.org/index.html">
147<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
148</body>
149</html>
Note: See TracBrowser for help on using the repository browser.