Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-release > by-pkgid > 58828b263d8f56d90ac336dea07a4586 > files > 228

irrlicht-doc-1.6.1-1mdv2010.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Irrlicht Engine: ISceneNode.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table class="irrlicht" >
  <tr valign="middle"> 
    <td><font size="2"><a class="qindex" href="index.html"><font color="#FFFFFF">Home</font></a> 
      | <a class="qindex" href="namespaces.html"><font color="#FFFFFF">Namespaces</font></a> 
      | <a class="qindex" href="hierarchy.html"><font color="#FFFFFF">Hierarchy</font></a> 
      | <a class="qindex" href="classes.html"><font color="#FFFFFF">Alphabetical 
      List</font></a> | <a class="qindex" href="annotated.html"><font color="#FFFFFF"> 
      Class list</font></a> | <a class="qindex" href="files.html"><font color="#FFFFFF">Files</font></a> 
      | <a class="qindex" href="namespacemembers.html"><font color="#FFFFFF"> 
      Namespace&nbsp;Members</font></a> | <a class="qindex" href="functions.html"><font color="#FFFFFF">Class 
      members</font></a> | <a class="qindex" href="globals.html"><font color="#FFFFFF">File 
      members</font></a> | <a class="qindex" href="pages.html"><font color="#FFFFFF">Tutorials</font></a></font> </td>
  </tr>
</table>
<!-- Generated by Doxygen 1.5.6 -->
<h1>ISceneNode.h</h1><a href="_i_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">// Copyright (C) 2002-2009 Nikolaus Gebhardt</span>
<a name="l00002"></a>00002 <span class="comment">// This file is part of the "Irrlicht Engine".</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_SCENE_NODE_H_INCLUDED__</span>
<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#define __I_SCENE_NODE_H_INCLUDED__</span>
<a name="l00007"></a>00007 <span class="preprocessor"></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include "<a class="code" href="_i_attribute_exchanging_object_8h.html">IAttributeExchangingObject.h</a>"</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include "<a class="code" href="_e_scene_node_types_8h.html">ESceneNodeTypes.h</a>"</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="_e_culling_types_8h.html">ECullingTypes.h</a>"</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include "<a class="code" href="_e_debug_scene_types_8h.html">EDebugSceneTypes.h</a>"</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include "<a class="code" href="_i_scene_node_animator_8h.html">ISceneNodeAnimator.h</a>"</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="_i_triangle_selector_8h.html">ITriangleSelector.h</a>"</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="_s_material_8h.html">SMaterial.h</a>"</span>
<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="irr_string_8h.html">irrString.h</a>"</span>
<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="aabbox3d_8h.html">aabbox3d.h</a>"</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="matrix4_8h.html">matrix4.h</a>"</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="irr_list_8h.html">irrList.h</a>"</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="_i_attributes_8h.html">IAttributes.h</a>"</span>
<a name="l00020"></a>00020 
<a name="l00021"></a>00021 <span class="keyword">namespace </span>irr
<a name="l00022"></a>00022 {
<a name="l00023"></a>00023 <span class="keyword">namespace </span>scene
<a name="l00024"></a>00024 {
<a name="l00025"></a>00025         <span class="keyword">class </span>ISceneManager;
<a name="l00026"></a>00026 
<a name="l00028"></a>00028 
<a name="l00035"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html">00035</a>         <span class="keyword">class </span><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> io::IAttributeExchangingObject
<a name="l00036"></a>00036         {
<a name="l00037"></a>00037         <span class="keyword">public</span>:
<a name="l00038"></a>00038 
<a name="l00040"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#9894d951df2f720924f891e0a7b9fac2">00040</a>                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#9894d951df2f720924f891e0a7b9fac2" title="Constructor.">ISceneNode</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* parent, <a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* mgr, <a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <span class="keywordtype">id</span>=-1,
<a name="l00041"></a>00041                                 <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; position = <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>(0,0,0),
<a name="l00042"></a>00042                                 <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; rotation = <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>(0,0,0),
<a name="l00043"></a>00043                                 <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; scale = <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>(1.0f, 1.0f, 1.0f))
<a name="l00044"></a>00044                         : <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a>(position), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a>(rotation), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a>(scale),
<a name="l00045"></a>00045                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>(0), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>(mgr), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>(0), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a>(id),
<a name="l00046"></a>00046                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a>(<a class="code" href="namespaceirr_1_1scene.html#cabb2772476aa3706e65a7dc77fd9cce28580fa38fb38096fdf29555d2488ff6">EAC_BOX</a>), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a>(<a class="code" href="namespaceirr_1_1scene.html#52b664c4c988113735042b168fc32dbe25111b15f03bee9a99498737286916dc" title="No Debug Data ( Default ).">EDS_OFF</a>),
<a name="l00047"></a>00047                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>(true), <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a>(false)
<a name="l00048"></a>00048                 {
<a name="l00049"></a>00049                         <span class="keywordflow">if</span> (parent)
<a name="l00050"></a>00050                                 parent-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cceef4fbb68f6cc7bb40035225350970" title="Adds a child to this scene node.">addChild</a>(<span class="keyword">this</span>);
<a name="l00051"></a>00051 
<a name="l00052"></a>00052                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#eb6e0dc034bb2101600ce87acbcf0f6e" title="Updates the absolute position based on the relative and the parents position.">updateAbsolutePosition</a>();
<a name="l00053"></a>00053                 }
<a name="l00054"></a>00054 
<a name="l00055"></a>00055 
<a name="l00057"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#3064ed436d731f072e55873577724fbc">00057</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#3064ed436d731f072e55873577724fbc" title="Destructor.">~ISceneNode</a>()
<a name="l00058"></a>00058                 {
<a name="l00059"></a>00059                         <span class="comment">// delete all children</span>
<a name="l00060"></a>00060                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#348767bb5b9262d997067c50e079e5be" title="Removes all children of this scene node.">removeAll</a>();
<a name="l00061"></a>00061 
<a name="l00062"></a>00062                         <span class="comment">// delete all animators</span>
<a name="l00063"></a>00063                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;::Iterator</a> ait = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.begin();
<a name="l00064"></a>00064                         <span class="keywordflow">for</span> (; ait != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.end(); ++ait)
<a name="l00065"></a>00065                                 (*ait)-&gt;drop();
<a name="l00066"></a>00066 
<a name="l00067"></a>00067                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>)
<a name="l00068"></a>00068                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#fb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">drop</a>();
<a name="l00069"></a>00069                 }
<a name="l00070"></a>00070 
<a name="l00071"></a>00071 
<a name="l00073"></a>00073 
<a name="l00086"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#c9795bfcb88dcaf8cba6ea3296e5d8d0">00086</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#c9795bfcb88dcaf8cba6ea3296e5d8d0" title="This method is called just before the rendering process of the whole scene.">OnRegisterSceneNode</a>()
<a name="l00087"></a>00087                 {
<a name="l00088"></a>00088                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>)
<a name="l00089"></a>00089                         {
<a name="l00090"></a>00090                                 <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00091"></a>00091                                 <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00092"></a>00092                                         (*it)-&gt;OnRegisterSceneNode();
<a name="l00093"></a>00093                         }
<a name="l00094"></a>00094                 }
<a name="l00095"></a>00095 
<a name="l00096"></a>00096 
<a name="l00098"></a>00098 
<a name="l00103"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fc1dcb5cb19116d0c7aa3d4ebdf04cc5">00103</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fc1dcb5cb19116d0c7aa3d4ebdf04cc5" title="OnAnimate() is called just before rendering the whole scene.">OnAnimate</a>(<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> timeMs)
<a name="l00104"></a>00104                 {
<a name="l00105"></a>00105                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>)
<a name="l00106"></a>00106                         {
<a name="l00107"></a>00107                                 <span class="comment">// animate this node with all animators</span>
<a name="l00108"></a>00108 
<a name="l00109"></a>00109                                 <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;::Iterator</a> ait = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.begin();
<a name="l00110"></a>00110                                 <span class="keywordflow">while</span> (ait != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.end())
<a name="l00111"></a>00111                                         {
<a name="l00112"></a>00112                                         <span class="comment">// continue to the next node before calling animateNode()</span>
<a name="l00113"></a>00113                                         <span class="comment">// so that the animator may remove itself from the scene</span>
<a name="l00114"></a>00114                                         <span class="comment">// node without the iterator becoming invalid</span>
<a name="l00115"></a>00115                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node_animator.html" title="Animates a scene node. Can animate position, rotation, material, and so on.">ISceneNodeAnimator</a>* anim = *ait;
<a name="l00116"></a>00116                                         ++ait;
<a name="l00117"></a>00117                                         anim-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node_animator.html#b2170d133db16de148d0f6841c06bc84" title="Animates a scene node.">animateNode</a>(<span class="keyword">this</span>, timeMs);
<a name="l00118"></a>00118                                 } 
<a name="l00119"></a>00119 
<a name="l00120"></a>00120                                 <span class="comment">// update absolute position</span>
<a name="l00121"></a>00121                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#eb6e0dc034bb2101600ce87acbcf0f6e" title="Updates the absolute position based on the relative and the parents position.">updateAbsolutePosition</a>();
<a name="l00122"></a>00122 
<a name="l00123"></a>00123                                 <span class="comment">// perform the post render process on all children</span>
<a name="l00124"></a>00124 
<a name="l00125"></a>00125                                 <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00126"></a>00126                                 <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00127"></a>00127                                         (*it)-&gt;OnAnimate(timeMs);
<a name="l00128"></a>00128                         }
<a name="l00129"></a>00129                 }
<a name="l00130"></a>00130 
<a name="l00131"></a>00131 
<a name="l00133"></a>00133                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ff530cc4856792101d0aedee51ce35fa" title="Renders the node.">render</a>() = 0;
<a name="l00134"></a>00134 
<a name="l00135"></a>00135 
<a name="l00137"></a>00137 
<a name="l00138"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#abb3b657d0afb62994399181b952f3e3">00138</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceirr.html#9395eaea339bcb546b319e9c96bf7410" title="8 bit character variable.">c8</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#abb3b657d0afb62994399181b952f3e3" title="Returns the name of the node.">getName</a>()<span class="keyword"> const</span>
<a name="l00139"></a>00139 <span class="keyword">                </span>{
<a name="l00140"></a>00140                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a>.<a class="code" href="classirr_1_1core_1_1string.html#4abad222c478c108096ee9297870068c" title="Returns character string.">c_str</a>();
<a name="l00141"></a>00141                 }
<a name="l00142"></a>00142 
<a name="l00143"></a>00143 
<a name="l00145"></a>00145 
<a name="l00146"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#810a54a2fc178b9a0e731513865f67d0">00146</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#810a54a2fc178b9a0e731513865f67d0" title="Sets the name of the node.">setName</a>(<span class="keyword">const</span> <a class="code" href="namespaceirr.html#9395eaea339bcb546b319e9c96bf7410" title="8 bit character variable.">c8</a>* name)
<a name="l00147"></a>00147                 {
<a name="l00148"></a>00148                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a> = name;
<a name="l00149"></a>00149                 }
<a name="l00150"></a>00150 
<a name="l00151"></a>00151 
<a name="l00153"></a>00153 
<a name="l00154"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#20a22d956974f4817a20663361f20042">00154</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#810a54a2fc178b9a0e731513865f67d0" title="Sets the name of the node.">setName</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1string.html">core::stringc</a>&amp; name)
<a name="l00155"></a>00155                 {
<a name="l00156"></a>00156                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a> = name;
<a name="l00157"></a>00157                 }
<a name="l00158"></a>00158 
<a name="l00159"></a>00159 
<a name="l00161"></a>00161 
<a name="l00168"></a>00168                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1aabbox3d.html" title="Axis aligned bounding box in 3d dimensional space.">core::aabbox3d&lt;f32&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#223f718fc2f4944b5ad28c592f6cc8c6" title="Get the axis aligned, not transformed bounding box of this node.">getBoundingBox</a>() <span class="keyword">const</span> = 0;
<a name="l00169"></a>00169 
<a name="l00170"></a>00170 
<a name="l00172"></a>00172 
<a name="l00173"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#6b0fce4b4e40b97ac3c1a9779553c716">00173</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1aabbox3d.html" title="Axis aligned bounding box in 3d dimensional space.">core::aabbox3d&lt;f32&gt;</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#6b0fce4b4e40b97ac3c1a9779553c716" title="Get the axis aligned, transformed and animated absolute bounding box of this node...">getTransformedBoundingBox</a>()<span class="keyword"> const</span>
<a name="l00174"></a>00174 <span class="keyword">                </span>{
<a name="l00175"></a>00175                         <a class="code" href="classirr_1_1core_1_1aabbox3d.html" title="Axis aligned bounding box in 3d dimensional space.">core::aabbox3d&lt;f32&gt;</a> box = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#223f718fc2f4944b5ad28c592f6cc8c6" title="Get the axis aligned, not transformed bounding box of this node.">getBoundingBox</a>();
<a name="l00176"></a>00176                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a>.<a class="code" href="classirr_1_1core_1_1_c_matrix4.html#87451aea9c07b71d1a8b6091b8cefa63" title="Transforms a axis aligned bounding box.">transformBoxEx</a>(box);
<a name="l00177"></a>00177                         <span class="keywordflow">return</span> box;
<a name="l00178"></a>00178                 }
<a name="l00179"></a>00179 
<a name="l00180"></a>00180 
<a name="l00183"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#9c46ea82efd7ae30437fb7c385809050">00183</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <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>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#9c46ea82efd7ae30437fb7c385809050">getAbsoluteTransformation</a>()<span class="keyword"> const</span>
<a name="l00184"></a>00184 <span class="keyword">                </span>{
<a name="l00185"></a>00185                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a>;
<a name="l00186"></a>00186                 }
<a name="l00187"></a>00187 
<a name="l00188"></a>00188 
<a name="l00190"></a>00190 
<a name="l00194"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe701e793852ac8eb4ae7c723aef5b55">00194</a>                 <span class="keyword">virtual</span> <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="classirr_1_1scene_1_1_i_scene_node.html#fe701e793852ac8eb4ae7c723aef5b55" title="Returns the relative transformation of the scene node.">getRelativeTransformation</a>()<span class="keyword"> const</span>
<a name="l00195"></a>00195 <span class="keyword">                </span>{
<a name="l00196"></a>00196                         <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> mat;
<a name="l00197"></a>00197                         mat.<a class="code" href="classirr_1_1core_1_1_c_matrix4.html#8ee5ef8619d4b0f56d72ac84495ed644" title="Make a rotation matrix from Euler angles. The 4th row and column are unmodified.">setRotationDegrees</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a>);
<a name="l00198"></a>00198                         mat.<a class="code" href="classirr_1_1core_1_1_c_matrix4.html#c04a3b341cbfbb7986be682691655622" title="Set the translation of the current matrix. Will erase any previous values.">setTranslation</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a>);
<a name="l00199"></a>00199 
<a name="l00200"></a>00200                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a> != <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>(1.f,1.f,1.f))
<a name="l00201"></a>00201                         {
<a name="l00202"></a>00202                                 <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> smat;
<a name="l00203"></a>00203                                 smat.<a class="code" href="classirr_1_1core_1_1_c_matrix4.html#47117d44419af87e70084c01ab852049" title="Set Scale.">setScale</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a>);
<a name="l00204"></a>00204                                 mat *= smat;
<a name="l00205"></a>00205                         }
<a name="l00206"></a>00206 
<a name="l00207"></a>00207                         <span class="keywordflow">return</span> mat;
<a name="l00208"></a>00208                 }
<a name="l00209"></a>00209 
<a name="l00210"></a>00210 
<a name="l00212"></a>00212 
<a name="l00216"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1aef4f0feccebcd0d38373beadbc1827">00216</a>                 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1aef4f0feccebcd0d38373beadbc1827" title="Returns whether the node should be visible (if all of its parents are visible).">isVisible</a>()<span class="keyword"> const</span>
<a name="l00217"></a>00217 <span class="keyword">                </span>{
<a name="l00218"></a>00218                         <a class="code" href="irr_types_8h.html#d19cf45bdc142ef8e4a011cabbc4a4af" title="Defines a small statement to work around a microsoft compiler bug.">_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX</a>;
<a name="l00219"></a>00219                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>;
<a name="l00220"></a>00220                 }
<a name="l00221"></a>00221 
<a name="l00223"></a>00223 
<a name="l00225"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a7065e757724f61d4a91d25db25c3a2b">00225</a>                 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a7065e757724f61d4a91d25db25c3a2b" title="Check whether the node is truly visible, taking into accounts its parents&amp;#39; visibility...">isTrulyVisible</a>()<span class="keyword"> const</span>
<a name="l00226"></a>00226 <span class="keyword">                </span>{
<a name="l00227"></a>00227                         <a class="code" href="irr_types_8h.html#d19cf45bdc142ef8e4a011cabbc4a4af" title="Defines a small statement to work around a microsoft compiler bug.">_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX</a>;
<a name="l00228"></a>00228                         <span class="keywordflow">if</span>(!<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>)
<a name="l00229"></a>00229                                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00230"></a>00230 
<a name="l00231"></a>00231                         <span class="keywordflow">if</span>(!<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>)
<a name="l00232"></a>00232                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00233"></a>00233 
<a name="l00234"></a>00234                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a7065e757724f61d4a91d25db25c3a2b" title="Check whether the node is truly visible, taking into accounts its parents&amp;#39; visibility...">isTrulyVisible</a>();
<a name="l00235"></a>00235                 }
<a name="l00236"></a>00236 
<a name="l00238"></a>00238 
<a name="l00242"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2e3a88fe87d11caa7986a203afe6838c">00242</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2e3a88fe87d11caa7986a203afe6838c" title="Sets if the node should be visible or not.">setVisible</a>(<span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1aef4f0feccebcd0d38373beadbc1827" title="Returns whether the node should be visible (if all of its parents are visible).">isVisible</a>)
<a name="l00243"></a>00243                 {
<a name="l00244"></a>00244                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a> = isVisible;
<a name="l00245"></a>00245                 }
<a name="l00246"></a>00246 
<a name="l00247"></a>00247 
<a name="l00249"></a>00249 
<a name="l00251"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f695e36340a9bb32f7e655fe4c1ea97">00251</a>                 <span class="keyword">virtual</span> <a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f695e36340a9bb32f7e655fe4c1ea97" title="Get the id of the scene node.">getID</a>()<span class="keyword"> const</span>
<a name="l00252"></a>00252 <span class="keyword">                </span>{
<a name="l00253"></a>00253                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a>;
<a name="l00254"></a>00254                 }
<a name="l00255"></a>00255 
<a name="l00256"></a>00256 
<a name="l00258"></a>00258 
<a name="l00260"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#de60c630c4768200b1d15debbd00fe0e">00260</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#de60c630c4768200b1d15debbd00fe0e" title="Sets the id of the scene node.">setID</a>(<a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <span class="keywordtype">id</span>)
<a name="l00261"></a>00261                 {
<a name="l00262"></a>00262                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a> = id;
<a name="l00263"></a>00263                 }
<a name="l00264"></a>00264 
<a name="l00265"></a>00265 
<a name="l00267"></a>00267 
<a name="l00270"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cceef4fbb68f6cc7bb40035225350970">00270</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cceef4fbb68f6cc7bb40035225350970" title="Adds a child to this scene node.">addChild</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* child)
<a name="l00271"></a>00271                 {
<a name="l00272"></a>00272                         <span class="keywordflow">if</span> (child &amp;&amp; (child != <span class="keyword">this</span>))
<a name="l00273"></a>00273                         {
<a name="l00274"></a>00274                                 <span class="comment">// Change scene manager?</span>
<a name="l00275"></a>00275                                 <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a> != child-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>)
<a name="l00276"></a>00276                                         child-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#513d09ae37f71391d7c4838e29164a3e">setSceneManager</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>);
<a name="l00277"></a>00277 
<a name="l00278"></a>00278                                 child-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#2b7a035532e5f409ca9482dab79185f4" title="Grabs the object. Increments the reference counter by one.">grab</a>();
<a name="l00279"></a>00279                                 child-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2efa2670e29d6bb33b0dd99403b8b69c" title="Removes this scene node from the scene.">remove</a>(); <span class="comment">// remove from old parent</span>
<a name="l00280"></a>00280                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.push_back(child);
<a name="l00281"></a>00281                                 child-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a> = <span class="keyword">this</span>;
<a name="l00282"></a>00282                         }
<a name="l00283"></a>00283                 }
<a name="l00284"></a>00284 
<a name="l00285"></a>00285 
<a name="l00287"></a>00287 
<a name="l00292"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#831e371142fc883c7dd229552e0340de">00292</a>                 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#831e371142fc883c7dd229552e0340de" title="Removes a child from this scene node.">removeChild</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* child)
<a name="l00293"></a>00293                 {
<a name="l00294"></a>00294                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00295"></a>00295                         <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00296"></a>00296                                 <span class="keywordflow">if</span> ((*it) == child)
<a name="l00297"></a>00297                                 {
<a name="l00298"></a>00298                                         (*it)-&gt;Parent = 0;
<a name="l00299"></a>00299                                         (*it)-&gt;drop();
<a name="l00300"></a>00300                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.erase(it);
<a name="l00301"></a>00301                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00302"></a>00302                                 }
<a name="l00303"></a>00303 
<a name="l00304"></a>00304                         <a class="code" href="irr_types_8h.html#d19cf45bdc142ef8e4a011cabbc4a4af" title="Defines a small statement to work around a microsoft compiler bug.">_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX</a>;
<a name="l00305"></a>00305                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00306"></a>00306                 }
<a name="l00307"></a>00307 
<a name="l00308"></a>00308 
<a name="l00310"></a>00310 
<a name="l00313"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#348767bb5b9262d997067c50e079e5be">00313</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#348767bb5b9262d997067c50e079e5be" title="Removes all children of this scene node.">removeAll</a>()
<a name="l00314"></a>00314                 {
<a name="l00315"></a>00315                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00316"></a>00316                         <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00317"></a>00317                         {
<a name="l00318"></a>00318                                 (*it)-&gt;Parent = 0;
<a name="l00319"></a>00319                                 (*it)-&gt;drop();
<a name="l00320"></a>00320                         }
<a name="l00321"></a>00321 
<a name="l00322"></a>00322                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.clear();
<a name="l00323"></a>00323                 }
<a name="l00324"></a>00324 
<a name="l00325"></a>00325 
<a name="l00327"></a>00327 
<a name="l00329"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2efa2670e29d6bb33b0dd99403b8b69c">00329</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <span class="keyword">remove</span>()
<a name="l00330"></a>00330                 {
<a name="l00331"></a>00331                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>)
<a name="l00332"></a>00332                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#831e371142fc883c7dd229552e0340de" title="Removes a child from this scene node.">removeChild</a>(<span class="keyword">this</span>);
<a name="l00333"></a>00333                 }
<a name="l00334"></a>00334 
<a name="l00335"></a>00335 
<a name="l00337"></a>00337 
<a name="l00338"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0e5cd342cd7293c136e53e2c2c5e0f3a">00338</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0e5cd342cd7293c136e53e2c2c5e0f3a" title="Adds an animator which should animate this node.">addAnimator</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node_animator.html" title="Animates a scene node. Can animate position, rotation, material, and so on.">ISceneNodeAnimator</a>* animator)
<a name="l00339"></a>00339                 {
<a name="l00340"></a>00340                         <span class="keywordflow">if</span> (animator)
<a name="l00341"></a>00341                         {
<a name="l00342"></a>00342                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.push_back(animator);
<a name="l00343"></a>00343                                 animator-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#2b7a035532e5f409ca9482dab79185f4" title="Grabs the object. Increments the reference counter by one.">grab</a>();
<a name="l00344"></a>00344                         }
<a name="l00345"></a>00345                 }
<a name="l00346"></a>00346 
<a name="l00347"></a>00347 
<a name="l00349"></a>00349 
<a name="l00350"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1da5348d58e0072215c544cb35356517">00350</a>                 <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1da5348d58e0072215c544cb35356517" title="Get a list of all scene node animators.">getAnimators</a>()<span class="keyword"> const</span>
<a name="l00351"></a>00351 <span class="keyword">                </span>{
<a name="l00352"></a>00352                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>;
<a name="l00353"></a>00353                 }
<a name="l00354"></a>00354 
<a name="l00355"></a>00355 
<a name="l00357"></a>00357 
<a name="l00360"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#aa67f8f91d4ec99f82955641f1f9e521">00360</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#aa67f8f91d4ec99f82955641f1f9e521" title="Removes an animator from this scene node.">removeAnimator</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node_animator.html" title="Animates a scene node. Can animate position, rotation, material, and so on.">ISceneNodeAnimator</a>* animator)
<a name="l00361"></a>00361                 {
<a name="l00362"></a>00362                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.begin();
<a name="l00363"></a>00363                         <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.end(); ++it)
<a name="l00364"></a>00364                         {
<a name="l00365"></a>00365                                 <span class="keywordflow">if</span> ((*it) == animator)
<a name="l00366"></a>00366                                 {
<a name="l00367"></a>00367                                         (*it)-&gt;drop();
<a name="l00368"></a>00368                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.erase(it);
<a name="l00369"></a>00369                                         <span class="keywordflow">return</span>;
<a name="l00370"></a>00370                                 }
<a name="l00371"></a>00371                         }
<a name="l00372"></a>00372                 }
<a name="l00373"></a>00373 
<a name="l00374"></a>00374 
<a name="l00376"></a>00376 
<a name="l00378"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#28f198bd566e9a7290cbefa531d8d31e">00378</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#28f198bd566e9a7290cbefa531d8d31e" title="Removes all animators from this scene node.">removeAnimators</a>()
<a name="l00379"></a>00379                 {
<a name="l00380"></a>00380                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.begin();
<a name="l00381"></a>00381                         <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.end(); ++it)
<a name="l00382"></a>00382                                 (*it)-&gt;drop();
<a name="l00383"></a>00383 
<a name="l00384"></a>00384                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.clear();
<a name="l00385"></a>00385                 }
<a name="l00386"></a>00386 
<a name="l00387"></a>00387 
<a name="l00389"></a>00389 
<a name="l00396"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1f44d8cf753b2e4c17c90d4fc2ed05b2">00396</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1video_1_1_s_material.html" title="Struct for holding parameters for a material renderer.">video::SMaterial</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1f44d8cf753b2e4c17c90d4fc2ed05b2" title="Returns the material based on the zero based index i.">getMaterial</a>(<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> num)
<a name="l00397"></a>00397                 {
<a name="l00398"></a>00398                         <span class="keywordflow">return</span> <a class="code" href="namespaceirr_1_1video.html#6c7a0046dcf64bb165eca2af94045a61" title="global const identity Material">video::IdentityMaterial</a>;
<a name="l00399"></a>00399                 }
<a name="l00400"></a>00400 
<a name="l00401"></a>00401 
<a name="l00403"></a>00403 
<a name="l00404"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fa904bf3742941087aaee56b0b4cdfe2">00404</a>                 <span class="keyword">virtual</span> <a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fa904bf3742941087aaee56b0b4cdfe2" title="Get amount of materials used by this scene node.">getMaterialCount</a>()<span class="keyword"> const</span>
<a name="l00405"></a>00405 <span class="keyword">                </span>{
<a name="l00406"></a>00406                         <span class="keywordflow">return</span> 0;
<a name="l00407"></a>00407                 }
<a name="l00408"></a>00408 
<a name="l00409"></a>00409 
<a name="l00411"></a>00411 
<a name="l00415"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2841d5077854b9981711a403f33762cd">00415</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2841d5077854b9981711a403f33762cd" title="Sets all material flags at once to a new value.">setMaterialFlag</a>(<a class="code" href="namespaceirr_1_1video.html#8a3bc00ae8137535b9fbc5f40add70d3" title="Material flags.">video::E_MATERIAL_FLAG</a> flag, <span class="keywordtype">bool</span> newvalue)
<a name="l00416"></a>00416                 {
<a name="l00417"></a>00417                         <span class="keywordflow">for</span> (<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> i=0; i&lt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fa904bf3742941087aaee56b0b4cdfe2" title="Get amount of materials used by this scene node.">getMaterialCount</a>(); ++i)
<a name="l00418"></a>00418                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1f44d8cf753b2e4c17c90d4fc2ed05b2" title="Returns the material based on the zero based index i.">getMaterial</a>(i).<a class="code" href="classirr_1_1video_1_1_s_material.html#460db947d8e2022c6be895b77a65bbda" title="Sets the Material flag to the given value.">setFlag</a>(flag, newvalue);
<a name="l00419"></a>00419                 }
<a name="l00420"></a>00420 
<a name="l00421"></a>00421 
<a name="l00423"></a>00423 
<a name="l00426"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0d5d2e05ebe08e6a432fbb4fd1d28dd0">00426</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0d5d2e05ebe08e6a432fbb4fd1d28dd0" title="Sets the texture of the specified layer in all materials of this scene node to the...">setMaterialTexture</a>(<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> textureLayer, <a class="code" href="classirr_1_1video_1_1_i_texture.html" title="Interface of a Video Driver dependent Texture.">video::ITexture</a>* texture)
<a name="l00427"></a>00427                 {
<a name="l00428"></a>00428                         <span class="keywordflow">if</span> (textureLayer &gt;= <a class="code" href="namespaceirr_1_1video.html#d41ca808200ca2e8e9d9326355020052" title="Maximum number of texture an SMaterial can have.">video::MATERIAL_MAX_TEXTURES</a>)
<a name="l00429"></a>00429                                 <span class="keywordflow">return</span>;
<a name="l00430"></a>00430 
<a name="l00431"></a>00431                         <span class="keywordflow">for</span> (<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> i=0; i&lt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fa904bf3742941087aaee56b0b4cdfe2" title="Get amount of materials used by this scene node.">getMaterialCount</a>(); ++i)
<a name="l00432"></a>00432                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1f44d8cf753b2e4c17c90d4fc2ed05b2" title="Returns the material based on the zero based index i.">getMaterial</a>(i).<a class="code" href="classirr_1_1video_1_1_s_material.html#44dc38e7d4a78434d12ffd02e88e3d60" title="Sets the i-th texture.">setTexture</a>(textureLayer, texture);
<a name="l00433"></a>00433                 }
<a name="l00434"></a>00434 
<a name="l00435"></a>00435 
<a name="l00437"></a>00437 
<a name="l00438"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#302c7dedd776b52111823df5ed8446de">00438</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#302c7dedd776b52111823df5ed8446de" title="Sets the material type of all materials in this scene node to a new material type...">setMaterialType</a>(<a class="code" href="namespaceirr_1_1video.html#c8e9b6c66f7cebabd1a6d30cbc5430f1" title="Abstracted and easy to use fixed function/programmable pipeline material modes.">video::E_MATERIAL_TYPE</a> newType)
<a name="l00439"></a>00439                 {
<a name="l00440"></a>00440                         <span class="keywordflow">for</span> (<a class="code" href="namespaceirr.html#0416a53257075833e7002efd0a18e804" title="32 bit unsigned variable.">u32</a> i=0; i&lt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fa904bf3742941087aaee56b0b4cdfe2" title="Get amount of materials used by this scene node.">getMaterialCount</a>(); ++i)
<a name="l00441"></a>00441                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1f44d8cf753b2e4c17c90d4fc2ed05b2" title="Returns the material based on the zero based index i.">getMaterial</a>(i).<a class="code" href="classirr_1_1video_1_1_s_material.html#8cb63ab4b49ae1c61fbca8353e6b2f8a" title="Type of the material. Specifies how everything is blended together.">MaterialType</a> = newType;
<a name="l00442"></a>00442                 }
<a name="l00443"></a>00443 
<a name="l00444"></a>00444 
<a name="l00446"></a>00446 
<a name="l00450"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#69d142f4c8fa3f04b644cada4de09fc0">00450</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#69d142f4c8fa3f04b644cada4de09fc0" title="Gets the scale of the scene node relative to its parent.">getScale</a>()<span class="keyword"> const</span>
<a name="l00451"></a>00451 <span class="keyword">                </span>{
<a name="l00452"></a>00452                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a>;
<a name="l00453"></a>00453                 }
<a name="l00454"></a>00454 
<a name="l00455"></a>00455 
<a name="l00457"></a>00457 
<a name="l00458"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d710e1e20546bd89affe09fa943b0e2">00458</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d710e1e20546bd89affe09fa943b0e2" title="Sets the relative scale of the scene node.">setScale</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; scale)
<a name="l00459"></a>00459                 {
<a name="l00460"></a>00460                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a> = scale;
<a name="l00461"></a>00461                 }
<a name="l00462"></a>00462 
<a name="l00463"></a>00463 
<a name="l00465"></a>00465 
<a name="l00469"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5b87947672d70f863bc599720c7292c5">00469</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5b87947672d70f863bc599720c7292c5" title="Gets the rotation of the node relative to its parent.">getRotation</a>()<span class="keyword"> const</span>
<a name="l00470"></a>00470 <span class="keyword">                </span>{
<a name="l00471"></a>00471                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a>;
<a name="l00472"></a>00472                 }
<a name="l00473"></a>00473 
<a name="l00474"></a>00474 
<a name="l00476"></a>00476 
<a name="l00478"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#db6ff54f52d3a9e1514cd487a550935c">00478</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#db6ff54f52d3a9e1514cd487a550935c" title="Sets the rotation of the node relative to its parent.">setRotation</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; rotation)
<a name="l00479"></a>00479                 {
<a name="l00480"></a>00480                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a> = rotation;
<a name="l00481"></a>00481                 }
<a name="l00482"></a>00482 
<a name="l00483"></a>00483 
<a name="l00485"></a>00485 
<a name="l00488"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#43a7b4fa55fa58c20dfc54b9109c8b0a">00488</a>                 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#43a7b4fa55fa58c20dfc54b9109c8b0a" title="Gets the position of the node relative to its parent.">getPosition</a>()<span class="keyword"> const</span>
<a name="l00489"></a>00489 <span class="keyword">                </span>{
<a name="l00490"></a>00490                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a>;
<a name="l00491"></a>00491                 }
<a name="l00492"></a>00492 
<a name="l00493"></a>00493 
<a name="l00495"></a>00495 
<a name="l00497"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2166eb0a92cc0e46c49266f41a68ed50">00497</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2166eb0a92cc0e46c49266f41a68ed50" title="Sets the position of the node relative to its parent.">setPosition</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a>&amp; newpos)
<a name="l00498"></a>00498                 {
<a name="l00499"></a>00499                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a> = newpos;
<a name="l00500"></a>00500                 }
<a name="l00501"></a>00501 
<a name="l00502"></a>00502 
<a name="l00504"></a>00504 
<a name="l00507"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5dd3aee5ed767b9d98fa50b9ead4c9a9">00507</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5dd3aee5ed767b9d98fa50b9ead4c9a9" title="Gets the absolute position of the node in world coordinates.">getAbsolutePosition</a>()<span class="keyword"> const</span>
<a name="l00508"></a>00508 <span class="keyword">                </span>{
<a name="l00509"></a>00509                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a>.<a class="code" href="classirr_1_1core_1_1_c_matrix4.html#ec84b278e87611352b75298238e54006" title="Gets the current translation.">getTranslation</a>();
<a name="l00510"></a>00510                 }
<a name="l00511"></a>00511 
<a name="l00512"></a>00512 
<a name="l00514"></a>00514 
<a name="l00519"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cd24dd56505a4c98bdb939d2db28c5b8">00519</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cd24dd56505a4c98bdb939d2db28c5b8" title="Enables or disables automatic culling based on the bounding box.">setAutomaticCulling</a>( <a class="code" href="namespaceirr_1_1scene.html#cabb2772476aa3706e65a7dc77fd9cce" title="An enumeration for all types of automatic culling for built-in scene nodes.">E_CULLING_TYPE</a> state)
<a name="l00520"></a>00520                 {
<a name="l00521"></a>00521                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a> = state;
<a name="l00522"></a>00522                 }
<a name="l00523"></a>00523 
<a name="l00524"></a>00524 
<a name="l00526"></a>00526 
<a name="l00527"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#39b2383fa0abe19442e1ea99269aa63f">00527</a>                 <a class="code" href="namespaceirr_1_1scene.html#cabb2772476aa3706e65a7dc77fd9cce" title="An enumeration for all types of automatic culling for built-in scene nodes.">E_CULLING_TYPE</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#39b2383fa0abe19442e1ea99269aa63f" title="Gets the automatic culling state.">getAutomaticCulling</a>()<span class="keyword"> const</span>
<a name="l00528"></a>00528 <span class="keyword">                </span>{
<a name="l00529"></a>00529                         <a class="code" href="irr_types_8h.html#d19cf45bdc142ef8e4a011cabbc4a4af" title="Defines a small statement to work around a microsoft compiler bug.">_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX</a>;
<a name="l00530"></a>00530                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a>;
<a name="l00531"></a>00531                 }
<a name="l00532"></a>00532 
<a name="l00533"></a>00533 
<a name="l00535"></a>00535 
<a name="l00538"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#f2aeb31abfa51815c521f0c139bf9de7">00538</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#f2aeb31abfa51815c521f0c139bf9de7" title="Sets if debug data like bounding boxes should be drawn.">setDebugDataVisible</a>(<a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> state)
<a name="l00539"></a>00539                 {
<a name="l00540"></a>00540                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a> = state;
<a name="l00541"></a>00541                 }
<a name="l00542"></a>00542 
<a name="l00544"></a>00544 
<a name="l00546"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cc52db021ff4d4c0f1e10b2c691a0038">00546</a>                 <a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cc52db021ff4d4c0f1e10b2c691a0038" title="Returns if debug data like bounding boxes are drawn.">isDebugDataVisible</a>()<span class="keyword"> const</span>
<a name="l00547"></a>00547 <span class="keyword">                </span>{
<a name="l00548"></a>00548                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a>;
<a name="l00549"></a>00549                 }
<a name="l00550"></a>00550 
<a name="l00551"></a>00551 
<a name="l00553"></a>00553 
<a name="l00555"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#7ceda3eb747a353ffeda02c26e697cbd">00555</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#7ceda3eb747a353ffeda02c26e697cbd" title="Sets if this scene node is a debug object.">setIsDebugObject</a>(<span class="keywordtype">bool</span> debugObject)
<a name="l00556"></a>00556                 {
<a name="l00557"></a>00557                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a> = debugObject;
<a name="l00558"></a>00558                 }
<a name="l00559"></a>00559 
<a name="l00560"></a>00560 
<a name="l00562"></a>00562 
<a name="l00565"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#af7667d0fec6953461237e8e11c0ceb3">00565</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#af7667d0fec6953461237e8e11c0ceb3" title="Returns if this scene node is a debug object.">isDebugObject</a>()<span class="keyword"> const</span>
<a name="l00566"></a>00566 <span class="keyword">                </span>{
<a name="l00567"></a>00567                         <a class="code" href="irr_types_8h.html#d19cf45bdc142ef8e4a011cabbc4a4af" title="Defines a small statement to work around a microsoft compiler bug.">_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX</a>;
<a name="l00568"></a>00568                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a>;
<a name="l00569"></a>00569                 }
<a name="l00570"></a>00570 
<a name="l00571"></a>00571 
<a name="l00573"></a>00573 
<a name="l00574"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#e38d1c6c927375afa0b69aaf2a64b88e">00574</a>                 <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;</a>&amp; <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#e38d1c6c927375afa0b69aaf2a64b88e" title="Returns a const reference to the list of all children.">getChildren</a>()<span class="keyword"> const</span>
<a name="l00575"></a>00575 <span class="keyword">                </span>{
<a name="l00576"></a>00576                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>;
<a name="l00577"></a>00577                 }
<a name="l00578"></a>00578 
<a name="l00579"></a>00579 
<a name="l00581"></a>00581 
<a name="l00582"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#59e7f36cb5c9c4895e06fce0ca5eb276">00582</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#59e7f36cb5c9c4895e06fce0ca5eb276" title="Changes the parent of the scene node.">setParent</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* newParent)
<a name="l00583"></a>00583                 {
<a name="l00584"></a>00584                         <a class="code" href="classirr_1_1_i_reference_counted.html#2b7a035532e5f409ca9482dab79185f4" title="Grabs the object. Increments the reference counter by one.">grab</a>();
<a name="l00585"></a>00585                         <span class="keyword">remove</span>();
<a name="l00586"></a>00586 
<a name="l00587"></a>00587                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a> = newParent;
<a name="l00588"></a>00588 
<a name="l00589"></a>00589                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>)
<a name="l00590"></a>00590                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cceef4fbb68f6cc7bb40035225350970" title="Adds a child to this scene node.">addChild</a>(<span class="keyword">this</span>);
<a name="l00591"></a>00591 
<a name="l00592"></a>00592                         <a class="code" href="classirr_1_1_i_reference_counted.html#fb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">drop</a>();
<a name="l00593"></a>00593                 }
<a name="l00594"></a>00594 
<a name="l00595"></a>00595 
<a name="l00597"></a>00597 
<a name="l00606"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#21f4ddce8da7edfeafc6303b02ab8a83">00606</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1scene_1_1_i_triangle_selector.html" title="Interface to return triangles with specific properties.">ITriangleSelector</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#21f4ddce8da7edfeafc6303b02ab8a83" title="Returns the triangle selector attached to this scene node.">getTriangleSelector</a>()<span class="keyword"> const</span>
<a name="l00607"></a>00607 <span class="keyword">                </span>{
<a name="l00608"></a>00608                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>;
<a name="l00609"></a>00609                 }
<a name="l00610"></a>00610 
<a name="l00611"></a>00611 
<a name="l00613"></a>00613 
<a name="l00621"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#87fb52ec54bf3ae117340d8defd1255f">00621</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#87fb52ec54bf3ae117340d8defd1255f" title="Sets the triangle selector of the scene node.">setTriangleSelector</a>(<a class="code" href="classirr_1_1scene_1_1_i_triangle_selector.html" title="Interface to return triangles with specific properties.">ITriangleSelector</a>* selector)
<a name="l00622"></a>00622                 {
<a name="l00623"></a>00623                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a> != selector)
<a name="l00624"></a>00624                         {
<a name="l00625"></a>00625                                 <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>)
<a name="l00626"></a>00626                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#fb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">drop</a>();
<a name="l00627"></a>00627 
<a name="l00628"></a>00628                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a> = selector;
<a name="l00629"></a>00629                                 <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>)
<a name="l00630"></a>00630                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#2b7a035532e5f409ca9482dab79185f4" title="Grabs the object. Increments the reference counter by one.">grab</a>();
<a name="l00631"></a>00631                         }
<a name="l00632"></a>00632                 }
<a name="l00633"></a>00633 
<a name="l00634"></a>00634 
<a name="l00636"></a>00636 
<a name="l00638"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#eb6e0dc034bb2101600ce87acbcf0f6e">00638</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#eb6e0dc034bb2101600ce87acbcf0f6e" title="Updates the absolute position based on the relative and the parents position.">updateAbsolutePosition</a>()
<a name="l00639"></a>00639                 {
<a name="l00640"></a>00640                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>)
<a name="l00641"></a>00641                         {
<a name="l00642"></a>00642                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a> =
<a name="l00643"></a>00643                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#9c46ea82efd7ae30437fb7c385809050">getAbsoluteTransformation</a>() * <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe701e793852ac8eb4ae7c723aef5b55" title="Returns the relative transformation of the scene node.">getRelativeTransformation</a>();
<a name="l00644"></a>00644                         }
<a name="l00645"></a>00645                         <span class="keywordflow">else</span>
<a name="l00646"></a>00646                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a> = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe701e793852ac8eb4ae7c723aef5b55" title="Returns the relative transformation of the scene node.">getRelativeTransformation</a>();
<a name="l00647"></a>00647                 }
<a name="l00648"></a>00648 
<a name="l00649"></a>00649 
<a name="l00651"></a>00651 
<a name="l00652"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2987b689ed5f62aa823dc1334384200d">00652</a>                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">scene::ISceneNode</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2987b689ed5f62aa823dc1334384200d" title="Returns the parent of this scene node.">getParent</a>()<span class="keyword"> const</span>
<a name="l00653"></a>00653 <span class="keyword">                </span>{
<a name="l00654"></a>00654                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>;
<a name="l00655"></a>00655                 }
<a name="l00656"></a>00656 
<a name="l00657"></a>00657 
<a name="l00659"></a>00659 
<a name="l00660"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cb294abaf64a85e11744cce96f99926e">00660</a>                 <span class="keyword">virtual</span> <a class="code" href="namespaceirr_1_1scene.html#cad3d7ef92a9807d391ba29120f3b7bd" title="An enumeration for all types of built-in scene nodes.">ESCENE_NODE_TYPE</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#cb294abaf64a85e11744cce96f99926e" title="Returns type of the scene node.">getType</a>()<span class="keyword"> const</span>
<a name="l00661"></a>00661 <span class="keyword">                </span>{
<a name="l00662"></a>00662                         <span class="keywordflow">return</span> <a class="code" href="namespaceirr_1_1scene.html#cad3d7ef92a9807d391ba29120f3b7bd0c24ab203e5e0dc055f82fbca65d4f47" title="Unknown scene node.">ESNT_UNKNOWN</a>;
<a name="l00663"></a>00663                 }
<a name="l00664"></a>00664 
<a name="l00665"></a>00665 
<a name="l00667"></a>00667 
<a name="l00673"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#04142f1f0e5ec49a81aaeb2bc6db124c">00673</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#04142f1f0e5ec49a81aaeb2bc6db124c" title="Writes attributes of the scene node.">serializeAttributes</a>(<a class="code" href="classirr_1_1io_1_1_i_attributes.html" title="Provides a generic interface for attributes and their values and the possiblity to...">io::IAttributes</a>* out, <a class="code" href="structirr_1_1io_1_1_s_attribute_read_write_options.html" title="struct holding data describing options">io::SAttributeReadWriteOptions</a>* options=0)<span class="keyword"> const</span>
<a name="l00674"></a>00674 <span class="keyword">                </span>{
<a name="l00675"></a>00675                         <span class="keywordflow">if</span> (!out)
<a name="l00676"></a>00676                                 <span class="keywordflow">return</span>;
<a name="l00677"></a>00677                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#051f092d809f9d40215a1480d9d69afc" title="Adds an attribute as string.">addString</a>  (<span class="stringliteral">"Name"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a>.<a class="code" href="classirr_1_1core_1_1string.html#4abad222c478c108096ee9297870068c" title="Returns character string.">c_str</a>());
<a name="l00678"></a>00678                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#fbde111f36d59e9cf42b20595cf2ed24" title="Adds an attribute as integer.">addInt</a>     (<span class="stringliteral">"Id"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a> );
<a name="l00679"></a>00679 
<a name="l00680"></a>00680                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#ee73f5e51ad978b2bf146d10725da72f" title="Adds an attribute as 3d vector.">addVector3d</a>(<span class="stringliteral">"Position"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#43a7b4fa55fa58c20dfc54b9109c8b0a" title="Gets the position of the node relative to its parent.">getPosition</a>() );
<a name="l00681"></a>00681                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#ee73f5e51ad978b2bf146d10725da72f" title="Adds an attribute as 3d vector.">addVector3d</a>(<span class="stringliteral">"Rotation"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5b87947672d70f863bc599720c7292c5" title="Gets the rotation of the node relative to its parent.">getRotation</a>() );
<a name="l00682"></a>00682                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#ee73f5e51ad978b2bf146d10725da72f" title="Adds an attribute as 3d vector.">addVector3d</a>(<span class="stringliteral">"Scale"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#69d142f4c8fa3f04b644cada4de09fc0" title="Gets the scale of the scene node relative to its parent.">getScale</a>() );
<a name="l00683"></a>00683 
<a name="l00684"></a>00684                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#3335f912c0dfcf0e88f662796314123b" title="Adds an attribute as bool.">addBool</a>    (<span class="stringliteral">"Visible"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a> );
<a name="l00685"></a>00685                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#f03f3c31e9dadc98d875f993a8995819" title="Adds an attribute as enum.">addEnum</a>    (<span class="stringliteral">"AutomaticCulling"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a>, <a class="code" href="namespaceirr_1_1scene.html#fb3e3fc1668bd602189bab446801aa12" title="Names for culling type.">AutomaticCullingNames</a>);
<a name="l00686"></a>00686                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#fbde111f36d59e9cf42b20595cf2ed24" title="Adds an attribute as integer.">addInt</a>     (<span class="stringliteral">"DebugDataVisible"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a> );
<a name="l00687"></a>00687                         out-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#3335f912c0dfcf0e88f662796314123b" title="Adds an attribute as bool.">addBool</a>    (<span class="stringliteral">"IsDebugObject"</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a> );
<a name="l00688"></a>00688                 }
<a name="l00689"></a>00689 
<a name="l00690"></a>00690 
<a name="l00692"></a>00692 
<a name="l00698"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5fb609b08fc89a92f928c19ce3b181eb">00698</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#5fb609b08fc89a92f928c19ce3b181eb" title="Reads attributes of the scene node.">deserializeAttributes</a>(<a class="code" href="classirr_1_1io_1_1_i_attributes.html" title="Provides a generic interface for attributes and their values and the possiblity to...">io::IAttributes</a>* in, <a class="code" href="structirr_1_1io_1_1_s_attribute_read_write_options.html" title="struct holding data describing options">io::SAttributeReadWriteOptions</a>* options=0)
<a name="l00699"></a>00699                 {
<a name="l00700"></a>00700                         <span class="keywordflow">if</span> (!in)
<a name="l00701"></a>00701                                 <span class="keywordflow">return</span>;
<a name="l00702"></a>00702                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a> = in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#60f395fd008a70cc0531fa038c81f0ea">getAttributeAsString</a>(<span class="stringliteral">"Name"</span>);
<a name="l00703"></a>00703                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a> = in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#753cca00d54d1e36f6ef9c4e04b2ab01">getAttributeAsInt</a>(<span class="stringliteral">"Id"</span>);
<a name="l00704"></a>00704 
<a name="l00705"></a>00705                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2166eb0a92cc0e46c49266f41a68ed50" title="Sets the position of the node relative to its parent.">setPosition</a>(in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#c4ad5d4db7fd08e0523d3f8e671c2f68">getAttributeAsVector3d</a>(<span class="stringliteral">"Position"</span>));
<a name="l00706"></a>00706                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#db6ff54f52d3a9e1514cd487a550935c" title="Sets the rotation of the node relative to its parent.">setRotation</a>(in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#c4ad5d4db7fd08e0523d3f8e671c2f68">getAttributeAsVector3d</a>(<span class="stringliteral">"Rotation"</span>));
<a name="l00707"></a>00707                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d710e1e20546bd89affe09fa943b0e2" title="Sets the relative scale of the scene node.">setScale</a>(in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#c4ad5d4db7fd08e0523d3f8e671c2f68">getAttributeAsVector3d</a>(<span class="stringliteral">"Scale"</span>));
<a name="l00708"></a>00708 
<a name="l00709"></a>00709                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a> = in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#197407f5b0f1d0c1aefab3e1b8d7c02d">getAttributeAsBool</a>(<span class="stringliteral">"Visible"</span>);
<a name="l00710"></a>00710                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a> = (<a class="code" href="namespaceirr_1_1scene.html#cabb2772476aa3706e65a7dc77fd9cce" title="An enumeration for all types of automatic culling for built-in scene nodes.">scene::E_CULLING_TYPE</a>) in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#2a204c332735a0b15fa555ae6e785214">getAttributeAsEnumeration</a>(<span class="stringliteral">"AutomaticCulling"</span>,
<a name="l00711"></a>00711                                         <a class="code" href="namespaceirr_1_1scene.html#fb3e3fc1668bd602189bab446801aa12" title="Names for culling type.">scene::AutomaticCullingNames</a>);
<a name="l00712"></a>00712 
<a name="l00713"></a>00713                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a> = in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#753cca00d54d1e36f6ef9c4e04b2ab01">getAttributeAsInt</a>(<span class="stringliteral">"DebugDataVisible"</span>);
<a name="l00714"></a>00714                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a> = in-&gt;<a class="code" href="classirr_1_1io_1_1_i_attributes.html#197407f5b0f1d0c1aefab3e1b8d7c02d">getAttributeAsBool</a>(<span class="stringliteral">"IsDebugObject"</span>);
<a name="l00715"></a>00715 
<a name="l00716"></a>00716                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#eb6e0dc034bb2101600ce87acbcf0f6e" title="Updates the absolute position based on the relative and the parents position.">updateAbsolutePosition</a>();
<a name="l00717"></a>00717                 }
<a name="l00718"></a>00718 
<a name="l00720"></a>00720 
<a name="l00723"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#c39832b55855dc59196053adbaec95cc">00723</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#c39832b55855dc59196053adbaec95cc" title="Creates a clone of this scene node and its children.">clone</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* newParent=0, <a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* newManager=0)
<a name="l00724"></a>00724                 {
<a name="l00725"></a>00725                         <span class="keywordflow">return</span> 0; <span class="comment">// to be implemented by derived classes</span>
<a name="l00726"></a>00726                 }
<a name="l00727"></a>00727 
<a name="l00729"></a>00729 
<a name="l00730"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#58d2c91b48c9fe5c64a7de0c801ca511">00730</a>                 <span class="keyword">virtual</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#58d2c91b48c9fe5c64a7de0c801ca511" title="Retrieve the scene manager for this node.">getSceneManager</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>; }
<a name="l00731"></a>00731 
<a name="l00732"></a>00732         <span class="keyword">protected</span>:
<a name="l00733"></a>00733 
<a name="l00735"></a>00735 
<a name="l00739"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#00a4ef0212b5d4b005202519859689bd">00739</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#00a4ef0212b5d4b005202519859689bd" title="A clone function for the ISceneNode members.">cloneMembers</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* toCopyFrom, <a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* newManager)
<a name="l00740"></a>00740                 {
<a name="l00741"></a>00741                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a>;
<a name="l00742"></a>00742                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a>;
<a name="l00743"></a>00743                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a>;
<a name="l00744"></a>00744                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a>;
<a name="l00745"></a>00745                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a>;
<a name="l00746"></a>00746                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a>;
<a name="l00747"></a>00747                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#87fb52ec54bf3ae117340d8defd1255f" title="Sets the triangle selector of the scene node.">setTriangleSelector</a>(toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>);
<a name="l00748"></a>00748                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a>;
<a name="l00749"></a>00749                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a>;
<a name="l00750"></a>00750                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>;
<a name="l00751"></a>00751                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a>;
<a name="l00752"></a>00752 
<a name="l00753"></a>00753                         <span class="keywordflow">if</span> (newManager)
<a name="l00754"></a>00754                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a> = newManager;
<a name="l00755"></a>00755                         <span class="keywordflow">else</span>
<a name="l00756"></a>00756                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a> = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>;
<a name="l00757"></a>00757 
<a name="l00758"></a>00758                         <span class="comment">// clone children</span>
<a name="l00759"></a>00759 
<a name="l00760"></a>00760                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00761"></a>00761                         <span class="keywordflow">for</span> (; it != toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00762"></a>00762                                 (*it)-&gt;clone(<span class="keyword">this</span>, newManager);
<a name="l00763"></a>00763 
<a name="l00764"></a>00764                         <span class="comment">// clone animators</span>
<a name="l00765"></a>00765 
<a name="l00766"></a>00766                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;::Iterator</a> ait = toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.begin();
<a name="l00767"></a>00767                         <span class="keywordflow">for</span> (; ait != toCopyFrom-&gt;<a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>.end(); ++ait)
<a name="l00768"></a>00768                         {
<a name="l00769"></a>00769                                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node_animator.html" title="Animates a scene node. Can animate position, rotation, material, and so on.">ISceneNodeAnimator</a>* anim = (*ait)-&gt;createClone(<span class="keyword">this</span>, <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>);
<a name="l00770"></a>00770                                 <span class="keywordflow">if</span> (anim)
<a name="l00771"></a>00771                                 {
<a name="l00772"></a>00772                                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0e5cd342cd7293c136e53e2c2c5e0f3a" title="Adds an animator which should animate this node.">addAnimator</a>(anim);
<a name="l00773"></a>00773                                         anim-&gt;<a class="code" href="classirr_1_1_i_reference_counted.html#fb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">drop</a>();
<a name="l00774"></a>00774                                 }
<a name="l00775"></a>00775                         }
<a name="l00776"></a>00776                 }
<a name="l00777"></a>00777 
<a name="l00780"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#513d09ae37f71391d7c4838e29164a3e">00780</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#513d09ae37f71391d7c4838e29164a3e">setSceneManager</a>(<a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* newManager)
<a name="l00781"></a>00781                 {
<a name="l00782"></a>00782                         <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a> = newManager;
<a name="l00783"></a>00783 
<a name="l00784"></a>00784                         <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;::Iterator</a> it = <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.begin();
<a name="l00785"></a>00785                         <span class="keywordflow">for</span> (; it != <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>.end(); ++it)
<a name="l00786"></a>00786                                 (*it)-&gt;setSceneManager(newManager);
<a name="l00787"></a>00787                 }
<a name="l00788"></a>00788 
<a name="l00790"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b">00790</a>                 <a class="code" href="classirr_1_1core_1_1string.html">core::stringc</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#2527ec038f7e400fc141efa7fdc6327b" title="Name of the scene node.">Name</a>;
<a name="l00791"></a>00791 
<a name="l00793"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0">00793</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="classirr_1_1scene_1_1_i_scene_node.html#ab7d4bc865d0c7ccf361515a154a8cf0" title="Absolute transformation of the node.">AbsoluteTransformation</a>;
<a name="l00794"></a>00794 
<a name="l00796"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281">00796</a>                 <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d8af3d0185a787209b7be576a411281" title="Relative translation of the scene node.">RelativeTranslation</a>;
<a name="l00797"></a>00797 
<a name="l00799"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1">00799</a>                 <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#83fef4c36dcab69bbf94cf6e3e1323e1" title="Relative rotation of the scene node.">RelativeRotation</a>;
<a name="l00800"></a>00800 
<a name="l00802"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d">00802</a>                 <a class="code" href="classirr_1_1core_1_1vector3d.html" title="3d vector template class with lots of operators and methods.">core::vector3df</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#76e41eb5e7a5baf51350ec627a458a3d" title="Relative scale of the scene node.">RelativeScale</a>;
<a name="l00803"></a>00803 
<a name="l00805"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045">00805</a>                 <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html" title="Scene node interface.">ISceneNode</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#145c14ca15ce98bea683a36142f1b045" title="Pointer to the parent.">Parent</a>;
<a name="l00806"></a>00806 
<a name="l00808"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948">00808</a>                 <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNode*&gt;</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#1d6404800155442b600553efcd9d7948" title="List of all children of this node.">Children</a>;
<a name="l00809"></a>00809 
<a name="l00811"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348">00811</a>                 <a class="code" href="classirr_1_1core_1_1list.html" title="Doubly linked list template.">core::list&lt;ISceneNodeAnimator*&gt;</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#80dce48a13d9bdc6466613f27a33f348" title="List of all animator nodes.">Animators</a>;
<a name="l00812"></a>00812 
<a name="l00814"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5">00814</a>                 <a class="code" href="classirr_1_1scene_1_1_i_scene_manager.html" title="The Scene Manager manages scene nodes, mesh recources, cameras and all the other...">ISceneManager</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#062a201ee9b870398fe5aa8f36ce54a5" title="Pointer to the scene manager.">SceneManager</a>;
<a name="l00815"></a>00815 
<a name="l00817"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab">00817</a>                 <a class="code" href="classirr_1_1scene_1_1_i_triangle_selector.html" title="Interface to return triangles with specific properties.">ITriangleSelector</a>* <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#d622b3f366243e146b3b4cbe81b468ab" title="Pointer to the triangle selector.">TriangleSelector</a>;
<a name="l00818"></a>00818 
<a name="l00820"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef">00820</a>                 <a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#001b5cf9866fae4092b9b2cc89f3ebef" title="ID of the node.">ID</a>;
<a name="l00821"></a>00821 
<a name="l00823"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa">00823</a>                 <a class="code" href="namespaceirr_1_1scene.html#cabb2772476aa3706e65a7dc77fd9cce" title="An enumeration for all types of automatic culling for built-in scene nodes.">E_CULLING_TYPE</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#fe85cb196790b19c0f37b3a05369b3fa" title="Automatic culling state.">AutomaticCullingState</a>;
<a name="l00824"></a>00824 
<a name="l00826"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261">00826</a>                 <a class="code" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6" title="32 bit signed variable.">s32</a> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#0b660c1f9613d3f132999d952aabd261" title="Flag if debug data should be drawn, such as Bounding Boxes.">DebugDataVisible</a>;
<a name="l00827"></a>00827 
<a name="l00829"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e">00829</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#a834128c57215457914ef46d9b18cc5e" title="Is the node visible?">IsVisible</a>;
<a name="l00830"></a>00830 
<a name="l00832"></a><a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6">00832</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1scene_1_1_i_scene_node.html#8f1ba7c5e77eecc2adc6d12df0d27dd6" title="Is debug object?">IsDebugObject</a>;
<a name="l00833"></a>00833         };
<a name="l00834"></a>00834 
<a name="l00835"></a>00835 } <span class="comment">// end namespace scene</span>
<a name="l00836"></a>00836 } <span class="comment">// end namespace irr</span>
<a name="l00837"></a>00837 
<a name="l00838"></a>00838 <span class="preprocessor">#endif</span>
<a name="l00839"></a>00839 <span class="preprocessor"></span>
</pre></div></div>
<hr size="1">
<address style="align: right;">
<small> </small>
</address>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr> 
    <td width="0"> <div align="left"><small><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="irrlicht.png" alt="The Irrlicht Engine" align="middle" border=0 width=88 height=31></a></small></div></td>
    <td> <div align="left"><small><em><font size="2">The <a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
        Engine</a> Documentation &copy; 2003-2009 by Nikolaus Gebhardt. Generated 
        on Sun Jan 10 09:24:04 2010 by <a href="http://www.doxygen.org" target="_blank">Doxygen</a> 
        (1.5.6)</font></em></small></div></td>
  </tr>
</table>
<address style="align: right;">
</address>
</body>
</html>