<html> <head> <title>OgreNode.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <!-- Generated by Doxygen 1.3.6 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>OgreNode.h</h1><a href="OgreNode_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span> 00002 <span class="comment">-----------------------------------------------------------------------------</span> 00003 <span class="comment">This source file is part of OGRE</span> 00004 <span class="comment"> (Object-oriented Graphics Rendering Engine)</span> 00005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span> 00006 <span class="comment"></span> 00007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span> 00008 <span class="comment">Also see acknowledgements in Readme.html</span> 00009 <span class="comment"></span> 00010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span> 00011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span> 00012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span> 00013 <span class="comment">version.</span> 00014 <span class="comment"></span> 00015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span> 00016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span> 00017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span> 00018 <span class="comment"></span> 00019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span> 00020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span> 00021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span> 00022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span> 00023 <span class="comment">-----------------------------------------------------------------------------</span> 00024 <span class="comment">*/</span> 00025 <span class="preprocessor">#ifndef _Node_H__</span> 00026 <span class="preprocessor"></span><span class="preprocessor">#define _Node_H__</span> 00027 <span class="preprocessor"></span> 00028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span> 00029 00030 <span class="preprocessor">#include "<a class="code" href="OgreMatrix3_8h.html">OgreMatrix3.h</a>"</span> 00031 <span class="preprocessor">#include "<a class="code" href="OgreMatrix4_8h.html">OgreMatrix4.h</a>"</span> 00032 <span class="preprocessor">#include "<a class="code" href="OgreQuaternion_8h.html">OgreQuaternion.h</a>"</span> 00033 <span class="preprocessor">#include "<a class="code" href="OgreString_8h.html">OgreString.h</a>"</span> 00034 <span class="preprocessor">#include "<a class="code" href="OgreRenderable_8h.html">OgreRenderable.h</a>"</span> 00035 <span class="preprocessor">#include "<a class="code" href="OgreIteratorWrappers_8h.html">OgreIteratorWrappers.h</a>"</span> 00036 00037 <span class="keyword">namespace </span>Ogre { 00038 00039 <a name="l00050"></a><a class="code" href="classOgre_1_1Node.html">00050</a> <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a13">_OgreExport</a> Node : <span class="keyword">public</span> <a class="code" href="classOgre_1_1Renderable.html">Renderable</a> 00051 { 00052 <span class="keyword">public</span>: <a name="l00055"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointw5">00055</a> <span class="keyword">enum</span> TransformSpace 00056 { 00058 TS_LOCAL, 00060 TS_PARENT, 00062 TS_WORLD 00063 }; <a name="l00064"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointw0">00064</a> <span class="keyword">typedef</span> HashMap<String, Node*> <a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointw0">ChildNodeMap</a>; <a name="l00065"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointw1">00065</a> <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1MapIterator.html">MapIterator<ChildNodeMap></a> <a class="code" href="classOgre_1_1MapIterator.html">ChildNodeIterator</a>; 00066 00067 <span class="keyword">protected</span>: <a name="l00069"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp4">00069</a> Node* mParent; <a name="l00071"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp5">00071</a> <a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointw0">ChildNodeMap</a> mChildren; 00072 <a name="l00073"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointx0">00073</a> <span class="keyword">typedef</span> std::set<Node*> <a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointx0">ChildUpdateSet</a>; <a name="l00075"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp6">00075</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointx0">ChildUpdateSet</a> mChildrenToUpdate; <a name="l00077"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp7">00077</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mNeedParentUpdate; <a name="l00079"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp8">00079</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mNeedChildUpdate; <a name="l00081"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp9">00081</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mParentNotified ; 00082 <a name="l00084"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp10">00084</a> <a class="code" href="namespaceOgre.html#a426">String</a> mName; 00085 <a name="l00087"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointt0">00087</a> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> msNextGeneratedNameExt; 00088 <a name="l00090"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp11">00090</a> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> mOrientation; 00091 <a name="l00093"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp12">00093</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mPosition; 00094 <a name="l00096"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp13">00096</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mScale; 00097 <a name="l00099"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp14">00099</a> <span class="keywordtype">bool</span> mInheritScale; 00100 <a name="l00102"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp15">00102</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> mpMaterial; 00103 00105 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setParent(Node* parent); 00106 <a name="l00114"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp16">00114</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> mDerivedOrientation; 00115 <a name="l00123"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp17">00123</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mDerivedPosition; 00124 <a name="l00132"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp18">00132</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mDerivedScale; 00133 00140 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _updateFromParent(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00141 00143 <span class="keyword">virtual</span> Node* createChildImpl(<span class="keywordtype">void</span>) = 0; 00144 00146 <span class="keyword">virtual</span> Node* createChildImpl(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name) = 0; 00147 00154 <span class="keywordtype">void</span> makeTransform( 00155 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& position, 00156 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& scale, 00157 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>& orientation, 00158 <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& destMatrix ) <span class="keyword">const</span>; 00159 00165 <span class="keywordtype">void</span> makeInverseTransform( 00166 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& position, 00167 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& scale, 00168 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>& orientation, 00169 <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& destMatrix ); 00170 <a name="l00172"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp19">00172</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mInitialPosition; <a name="l00174"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp20">00174</a> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> mInitialOrientation; <a name="l00176"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp21">00176</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mInitialScale; 00177 00178 <span class="comment">// Weight of applied animations so far, used for blending</span> <a name="l00179"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp22">00179</a> <a class="code" href="namespaceOgre.html#a420">Real</a> mAccumAnimWeight; 00180 <span class="comment">// The total weighted translation from the initial state so far</span> <a name="l00181"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp23">00181</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mTransFromInitial; 00182 <span class="comment">// The total weighted rotation from the initial state so far</span> <a name="l00183"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp24">00183</a> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> mRotFromInitial; 00184 <span class="comment">// The total weighted scale from the initial state so far</span> <a name="l00185"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp25">00185</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mScaleFromInitial; 00186 <a name="l00188"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp26">00188</a> <span class="keyword">mutable</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> mCachedTransform; <a name="l00189"></a><a class="code" href="classOgre_1_1Node.html#Ogre_1_1TagPointp27">00189</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mCachedTransformOutOfDate; 00190 00191 00192 <span class="keyword">public</span>: 00197 Node(); 00202 Node(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name); 00203 00204 <span class="keyword">virtual</span> ~Node(); 00205 00207 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& getName(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00208 00211 <span class="keyword">virtual</span> Node* getParent(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00212 00215 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> & getOrientation() <span class="keyword">const</span>; 00216 00219 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setOrientation( <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>& q ); 00220 00223 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setOrientation( <a class="code" href="namespaceOgre.html#a420">Real</a> w, <a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z); 00224 00227 <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetOrientation(<span class="keywordtype">void</span>); 00228 00231 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPosition(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& pos); 00232 00235 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPosition(<a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z); 00236 00239 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> & getPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00240 00254 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setScale(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& scale); 00255 00269 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setScale(<a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z); 00270 00273 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> & getScale(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00274 00288 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInheritScale(<span class="keywordtype">bool</span> inherit); 00289 00294 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getInheritScale(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00295 00305 <span class="keyword">virtual</span> <span class="keywordtype">void</span> scale(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& scale); 00306 00316 <span class="keyword">virtual</span> <span class="keywordtype">void</span> scale(<a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z); 00317 00327 <span class="keyword">virtual</span> <span class="keywordtype">void</span> translate(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& d, TransformSpace relativeTo = TS_PARENT); 00341 <span class="keyword">virtual</span> <span class="keywordtype">void</span> translate(<a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z, TransformSpace relativeTo = TS_PARENT); 00361 <span class="keyword">virtual</span> <span class="keywordtype">void</span> translate(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix3.html">Matrix3</a>& axes, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& move, TransformSpace relativeTo = TS_PARENT); 00381 <span class="keyword">virtual</span> <span class="keywordtype">void</span> translate(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix3.html">Matrix3</a>& axes, <a class="code" href="namespaceOgre.html#a420">Real</a> x, <a class="code" href="namespaceOgre.html#a420">Real</a> y, <a class="code" href="namespaceOgre.html#a420">Real</a> z, TransformSpace relativeTo = TS_PARENT); 00382 00385 <span class="keyword">virtual</span> <span class="keywordtype">void</span> roll(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Radian.html">Radian</a>& angle, TransformSpace relativeTo = TS_LOCAL); 00386 <span class="preprocessor">#ifndef OGRE_FORCE_ANGLE_TYPES</span> 00387 <span class="preprocessor"></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> roll(<a class="code" href="namespaceOgre.html#a420">Real</a> degrees, TransformSpace relativeTo = TS_LOCAL) { 00388 roll ( <a class="code" href="classOgre_1_1Angle.html">Angle</a>(degrees), relativeTo ); 00389 } 00390 <span class="preprocessor">#endif//OGRE_FORCE_ANGLE_TYPES</span> 00391 <span class="preprocessor"></span> 00394 <span class="keyword">virtual</span> <span class="keywordtype">void</span> pitch(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Radian.html">Radian</a>& angle, TransformSpace relativeTo = TS_LOCAL); 00395 <span class="preprocessor">#ifndef OGRE_FORCE_ANGLE_TYPES</span> 00396 <span class="preprocessor"></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> pitch(<a class="code" href="namespaceOgre.html#a420">Real</a> degrees, TransformSpace relativeTo = TS_LOCAL) { 00397 pitch ( <a class="code" href="classOgre_1_1Angle.html">Angle</a>(degrees), relativeTo ); 00398 } 00399 <span class="preprocessor">#endif//OGRE_FORCE_ANGLE_TYPES</span> 00400 <span class="preprocessor"></span> 00403 <span class="keyword">virtual</span> <span class="keywordtype">void</span> yaw(<span class="keyword">const</span> Radian& angle, TransformSpace relativeTo = TS_LOCAL); 00404 <span class="preprocessor">#ifndef OGRE_FORCE_ANGLE_TYPES</span> 00405 <span class="preprocessor"></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> yaw(<a class="code" href="namespaceOgre.html#a420">Real</a> degrees, TransformSpace relativeTo = TS_LOCAL) { 00406 yaw ( Angle(degrees), relativeTo ); 00407 } 00408 <span class="preprocessor">#endif//OGRE_FORCE_ANGLE_TYPES</span> 00409 <span class="preprocessor"></span> 00412 <span class="keyword">virtual</span> <span class="keywordtype">void</span> rotate(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& axis, <span class="keyword">const</span> Radian& angle, TransformSpace relativeTo = TS_LOCAL); 00413 <span class="preprocessor">#ifndef OGRE_FORCE_ANGLE_TYPES</span> 00414 <span class="preprocessor"></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> rotate(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& axis, <a class="code" href="namespaceOgre.html#a420">Real</a> degrees, TransformSpace relativeTo = TS_LOCAL) { 00415 rotate ( axis, Angle(degrees), relativeTo ); 00416 } 00417 <span class="preprocessor">#endif//OGRE_FORCE_ANGLE_TYPES</span> 00418 <span class="preprocessor"></span> 00421 <span class="keyword">virtual</span> <span class="keywordtype">void</span> rotate(<span class="keyword">const</span> Quaternion& q, TransformSpace relativeTo = TS_LOCAL); 00422 00425 <span class="keyword">virtual</span> Matrix3 getLocalAxes(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00426 00433 <span class="keyword">virtual</span> Node* createChild( 00434 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& translate = Vector3::ZERO, 00435 <span class="keyword">const</span> Quaternion& rotate = Quaternion::IDENTITY ); 00436 00446 <span class="keyword">virtual</span> Node* createChild(<span class="keyword">const</span> String& name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& translate = Vector3::ZERO, <span class="keyword">const</span> Quaternion& rotate = Quaternion::IDENTITY); 00447 00451 <span class="keyword">virtual</span> <span class="keywordtype">void</span> addChild(Node* child); 00452 00455 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> numChildren(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00456 00461 <span class="keyword">virtual</span> Node* getChild(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> index) <span class="keyword">const</span>; 00462 00465 <span class="keyword">virtual</span> Node* getChild(<span class="keyword">const</span> String& name) <span class="keyword">const</span>; 00466 00477 <span class="keyword">virtual</span> ChildNodeIterator getChildIterator(<span class="keywordtype">void</span>); 00478 00486 <span class="keyword">virtual</span> Node* removeChild(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> index); 00494 <span class="keyword">virtual</span> Node* removeChild(Node* child); 00495 00501 <span class="keyword">virtual</span> Node* removeChild(<span class="keyword">const</span> String& name); 00505 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeAllChildren(<span class="keywordtype">void</span>); 00506 00509 <span class="keyword">virtual</span> <span class="keyword">const</span> Quaternion & _getDerivedOrientation(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00510 00513 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> & _getDerivedPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00514 00517 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> & _getDerivedScale(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00518 00528 <span class="keyword">virtual</span> Matrix4 _getFullTransform(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00529 00542 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _update(<span class="keywordtype">bool</span> updateChildren, <span class="keywordtype">bool</span> parentHasChanged); 00543 00550 <span class="keyword">const</span> MaterialPtr& getMaterial(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00557 <span class="keywordtype">void</span> getRenderOperation(RenderOperation& op); 00564 <span class="keywordtype">void</span> getWorldTransforms(Matrix4* xform) <span class="keyword">const</span>; 00566 <span class="keyword">const</span> Quaternion& getWorldOrientation(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00568 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& getWorldPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00569 00580 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInitialState(<span class="keywordtype">void</span>); 00581 00583 <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetToInitialState(<span class="keywordtype">void</span>); 00584 00589 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& getInitialPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00590 00592 <span class="keyword">virtual</span> <span class="keyword">const</span> Quaternion& getInitialOrientation(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00593 00595 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& getInitialScale(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00596 00605 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _weightedTransform(<a class="code" href="namespaceOgre.html#a420">Real</a> weight, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& translate, 00606 <span class="keyword">const</span> Quaternion& rotate, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>& scale); 00607 00609 <a class="code" href="namespaceOgre.html#a420">Real</a> getSquaredViewDepth(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam) <span class="keyword">const</span>; 00610 00616 <span class="keyword">virtual</span> <span class="keywordtype">void</span> needUpdate(); 00618 <span class="keyword">virtual</span> <span class="keywordtype">void</span> requestUpdate(Node* child); 00620 <span class="keyword">virtual</span> <span class="keywordtype">void</span> cancelUpdate(Node* child); 00621 00623 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a59">LightList</a>& getLights(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00624 00625 00626 00627 }; 00628 00629 } <span class="comment">//namespace</span> 00630 00631 <span class="preprocessor">#endif</span> </pre></div><p> Copyright © 2000-2005 by The OGRE Team<br /> Last modified Wed Feb 23 00:19:09 2005 </p> </body> </html>