<html> <head> <title>OgreOctreeSceneManager.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.2.16 --> <center> <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">Compound 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">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>OgreOctreeSceneManager.h</h1><a href="OgreOctreeSceneManager_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/***************************************************************************</font> 00002 <font class="comment">octreescenemanager.h - description</font> 00003 <font class="comment">-------------------</font> 00004 <font class="comment">begin : Fri Sep 27 2002</font> 00005 <font class="comment">copyright : (C) 2002 by Jon Anderson</font> 00006 <font class="comment">email : janders@users.sf.net</font> 00007 <font class="comment">***************************************************************************/</font> 00008 00009 <font class="comment">/***************************************************************************</font> 00010 <font class="comment">* *</font> 00011 <font class="comment">* This program is free software; you can redistribute it and/or modify *</font> 00012 <font class="comment">* it under the terms of the GNU Lesser General Public License as *</font> 00013 <font class="comment">* published by the Free Software Foundation; either version 2 of the * </font> 00014 <font class="comment">* License, or (at your option) any later version. *</font> 00015 <font class="comment">* *</font> 00016 <font class="comment">***************************************************************************/</font> 00017 00018 <font class="preprocessor">#ifndef OCTREESCENEMANAGER_H</font> 00019 <font class="preprocessor"></font><font class="preprocessor">#define OCTREESCENEMANAGER_H</font> 00020 <font class="preprocessor"></font> 00021 <font class="preprocessor">#include <<a class="code" href="OgreSceneManager_8h.html">OgreSceneManager.h</a>></font> 00022 <font class="preprocessor">#include <<a class="code" href="OgreRenderOperation_8h.html">OgreRenderOperation.h</a>></font> 00023 <font class="preprocessor">#include <<a class="code" href="OgreSphere_8h.html">OgreSphere.h</a>></font> 00024 00025 <font class="preprocessor">#include <list></font> 00026 <font class="preprocessor">#include <algorithm></font> 00027 00028 <font class="preprocessor">#include <<a class="code" href="OgreOctree_8h.html">OgreOctree.h</a>></font> 00029 00030 00031 <font class="keyword">namespace </font>Ogre 00032 { 00033 00034 <font class="keyword">class </font>OctreeNode; 00035 00036 <font class="keyword">class </font>OctreeCamera; 00037 00038 <a name="l00039"></a><a class="code" href="namespaceOgre.html#a470">00039</a> <font class="keyword">typedef</font> std::list < WireBoundingBox * > <a class="code" href="namespaceOgre.html#a470">BoxList</a>; <a name="l00040"></a><a class="code" href="namespaceOgre.html#a471">00040</a> <font class="keyword">typedef</font> std::list < unsigned long > <a class="code" href="namespaceOgre.html#a471">ColorList</a>; 00041 <font class="comment">//typedef std::list < SceneNode * > SceneNodeList;</font> 00042 00043 <a name="l00051"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html">00051</a> <font class="keyword">class </font><a class="code" href="classOgre_1_1OctreeSceneManager.html">OctreeSceneManager</a> : <font class="keyword">public</font> <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a> 00052 { 00053 <font class="keyword">public</font>: 00054 <font class="keyword">static</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagerp0">intersect_call</a>; 00056 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1OctreeSceneManagera0">OctreeSceneManager</a>( ); 00058 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1OctreeSceneManagera0">OctreeSceneManager</a>( <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> &box, <font class="keywordtype">int</font> max_depth ); 00060 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1OctreeSceneManagera2">~OctreeSceneManager</a>(); 00061 00064 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera10">init</a>( <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> &box, <font class="keywordtype">int</font> d ); 00065 00067 <font class="keyword">virtual</font> <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> * <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera11">createSceneNode</a> ( <font class="keywordtype">void</font> ); 00069 <font class="keyword">virtual</font> <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> * <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera11">createSceneNode</a> ( <font class="keyword">const</font> <a class="code" href="classOgre_1_1String.html">String</a> &name ); 00071 <font class="keyword">virtual</font> <a class="code" href="classOgre_1_1Camera.html">Camera</a> * <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera13">createCamera</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1String.html">String</a> &name ); 00072 00074 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera14">destroySceneNode</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1String.html">String</a> &name ); 00075 00076 00077 00079 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1OctreeSceneManagera8">_updateSceneGraph</a>( <a class="code" href="classOgre_1_1Camera.html">Camera</a> * cam ); 00081 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1OctreeSceneManagera9">_findVisibleObjects</a> ( <a class="code" href="classOgre_1_1Camera.html">Camera</a> * cam ); 00082 00087 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera15">_alertVisibleObjects</a>( <font class="keywordtype">void</font> ); 00088 00094 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera16">walkOctree</a>( <a class="code" href="classOgre_1_1OctreeCamera.html">OctreeCamera</a> *, <a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a> *, <a class="code" href="classOgre_1_1Octree.html">Octree</a> *, <font class="keywordtype">bool</font> foundvisible ); 00095 00099 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera17">_updateOctreeNode</a>( <a class="code" href="classOgre_1_1OctreeNode.html">OctreeNode</a> * ); 00101 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera18">_removeOctreeNode</a>( <a class="code" href="classOgre_1_1OctreeNode.html">OctreeNode</a> * ); 00104 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera19">_addOctreeNode</a>( <a class="code" href="classOgre_1_1OctreeNode.html">OctreeNode</a> *, <a class="code" href="classOgre_1_1Octree.html">Octree</a> *octree, <font class="keywordtype">int</font> depth = 0 ); 00105 00109 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera20">findNodesIn</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> &box, std::list < SceneNode * > &list, <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> *exclude = 0 ); 00110 00114 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera20">findNodesIn</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a> &sphere, std::list < SceneNode * > &list, <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> *exclude = 0 ); 00115 00116 00120 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera22">_findNodes</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> &box, std::list < SceneNode * > &list, <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> *exclude = 0, <font class="keywordtype">bool</font> full = <font class="keyword">false</font>, <a class="code" href="classOgre_1_1Octree.html">Octree</a> *octant = 0 ); 00121 00125 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera22">_findNodes</a>( <font class="keyword">const</font> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a> &sphere, std::list < SceneNode * > &list, <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a> *exclude = 0, <font class="keywordtype">bool</font> full = <font class="keyword">false</font>, <a class="code" href="classOgre_1_1Octree.html">Octree</a> *octant = 0 ); 00126 00127 <a name="l00129"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera24">00129</a> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera24">setShowBoxes</a>( <font class="keywordtype">bool</font> b ) 00130 { 00131 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern13">mShowBoxes</a> = b; 00132 }; 00133 <a name="l00135"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera25">00135</a> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera25">setUseCullCamera</a>( <font class="keywordtype">bool</font> b ) 00136 { 00137 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern14">mCullCamera</a> = b; 00138 }; 00139 <a name="l00140"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera26">00140</a> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera26">setLooseOctree</a>( <font class="keywordtype">bool</font> b ) 00141 { 00142 <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern15">mLoose</a> = b; 00143 }; 00144 00145 00147 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera27">resize</a>( <font class="keyword">const</font> AxisAlignedBox &box ); 00148 00158 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera28">setOption</a>( <font class="keyword">const</font> String &, <font class="keyword">const</font> <font class="keywordtype">void</font> * ); 00163 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera29">getOption</a>( <font class="keyword">const</font> String &, <font class="keywordtype">void</font> * ); 00164 00165 <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera30">getOptionValues</a>( <font class="keyword">const</font> String & key, std::list < SDDataChunk > &refValueList ); 00166 <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagera31">getOptionKeys</a>( std::list < String > & refKeys ); 00167 00168 00169 00170 00171 <font class="keyword">protected</font>: 00172 00173 <a name="l00174"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern7">00174</a> <a class="code" href="namespaceOgre.html#a469">NodeList</a> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern7">mVisible</a>; 00175 <a name="l00177"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern8">00177</a> <font class="keywordtype">float</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern8">mWorldSize</a>; 00178 <a name="l00180"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern9">00180</a> <a class="code" href="classOgre_1_1Octree.html">Octree</a> *<a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern9">mOctree</a>; 00181 <a name="l00183"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern10">00183</a> <a class="code" href="namespaceOgre.html#a470">BoxList</a> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern10">mBoxes</a>; 00184 <a name="l00186"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern11">00186</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern11">mNumObjects</a>; 00187 <a name="l00189"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern12">00189</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern12">mMaxDepth</a>; 00190 <a name="l00192"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern13">00192</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern13">mShowBoxes</a>; 00193 <a name="l00195"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern14">00195</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern14">mCullCamera</a>; 00196 00197 <a name="l00198"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern15">00198</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern15">mLoose</a>; 00199 <a name="l00200"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern16">00200</a> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern16">mCorners</a>[ 24 ]; 00201 <font class="keyword">static</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagerq0">mColors</a>[ 8 ]; 00202 <font class="keyword">static</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">short</font> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagerq1">mIndexes</a>[ 24 ]; 00203 <a name="l00204"></a><a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern17">00204</a> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> <a class="code" href="classOgre_1_1OctreeSceneManager.html#Ogre_1_1TerrainSceneManagern17">mScaleFactor</a>; 00205 00206 }; 00207 00208 } 00209 00210 <font class="preprocessor">#endif</font> 00211 <font class="preprocessor"></font> </pre></div><p> Copyright © 2002-2003 by The OGRE Team<br /> Last modified Wed Jan 21 00:10:19 2004 </p> </body> </html>