\hypertarget{class_ogre_1_1_octree}{}\doxysection{Ogre\+::Octree Class Reference}
\label{class_ogre_1_1_octree}\index{Ogre::Octree@{Ogre::Octree}}


\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} datastructure for managing scene nodes.  




{\ttfamily \#include $<$Ogre\+Octree\+Zone\+Octree.\+h$>$}



Inheritance diagram for Ogre\+::Octree\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=302pt]{class_ogre_1_1_octree__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Node\+List}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_octree_a9d584bd72ad69de05e900f6e9661dbe0}{Octree}} (\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$p)
\item 
\mbox{\hyperlink{class_ogre_1_1_octree_a0bc7cf568d9cf36667534007937d7cc6}{Octree}} (\mbox{\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone}} $\ast$zone, \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$p)
\item 
\mbox{\hyperlink{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}{$\sim$\+Octree}} ()
\item 
\mbox{\hyperlink{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}{$\sim$\+Octree}} ()
\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a2fe8d9cec30399f58fdd8e9481dae2a0}{\+\_\+add\+Node}} (\mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$)
\begin{DoxyCompactList}\small\item\em Adds an \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} scene node to this octree level. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}{\+\_\+add\+Node}} (\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$)
\begin{DoxyCompactList}\small\item\em Adds an P\+C\+Zscene node to this octree level. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_afd5b49ddb2ac48cd64ea6bfdc8e5f907}{\+\_\+find\+Nodes}} (const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&t, \mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&\mbox{\hyperlink{struct_ogre_1_1list}{list}}, \mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_aa2c86e2043b3eaec38ebe7194dab40c6}{\+\_\+find\+Nodes}} (const \mbox{\hyperlink{class_ogre_1_1_plane_bounded_volume}{Plane\+Bounded\+Volume}} \&t, \mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&\mbox{\hyperlink{struct_ogre_1_1list}{list}}, \mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}{\+\_\+find\+Nodes}} (const \mbox{\hyperlink{class_ogre_1_1_ray}{Ray}} \&t, \mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&\mbox{\hyperlink{struct_ogre_1_1list}{list}}, \mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a1bd7ec446024caf270a5334d178a19fa}{\+\_\+find\+Nodes}} (const \mbox{\hyperlink{class_ogre_1_1_sphere}{Sphere}} \&t, \mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&\mbox{\hyperlink{struct_ogre_1_1list}{list}}, \mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}{\+\_\+get\+Child\+Indexes}} (const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&, int $\ast$x, int $\ast$y, int $\ast$z) const
\begin{DoxyCompactList}\small\item\em Returns the appropriate indexes for the child of this octree into which the box will fit. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}{\+\_\+get\+Child\+Indexes}} (const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&, int $\ast$x, int $\ast$y, int $\ast$z) const
\begin{DoxyCompactList}\small\item\em Returns the appropriate indexes for the child of this octree into which the box will fit. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}{\+\_\+get\+Cull\+Bounds}} (\mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} $\ast$) const
\begin{DoxyCompactList}\small\item\em Creates the \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} used for culling this octree. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}{\+\_\+get\+Cull\+Bounds}} (\mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} $\ast$) const
\begin{DoxyCompactList}\small\item\em Creates the \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} used for culling this octree. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}{\+\_\+is\+Twice\+Size}} (const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&box) const
\begin{DoxyCompactList}\small\item\em Determines if this octree is twice as big as the given box. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}{\+\_\+is\+Twice\+Size}} (const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&box) const
\begin{DoxyCompactList}\small\item\em Determines if this octree is twice as big as the given box. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_a1acdc00d8345afd1010c7388e9c78e69}{\+\_\+remove\+Node}} (\mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$)
\begin{DoxyCompactList}\small\item\em Removes an \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} scene node to this octree level. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_octree_abe5cf507c82daeccf41dd6814310dfb6}{\+\_\+remove\+Node}} (\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$)
\begin{DoxyCompactList}\small\item\em Removes an P\+C\+Zscene node to this octree level. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}{get\+Wire\+Bounding\+Box}} ()
\begin{DoxyCompactList}\small\item\em Creates the wire frame bounding box for this octant. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}{get\+Wire\+Bounding\+Box}} ()
\begin{DoxyCompactList}\small\item\em Creates the wire frame bounding box for this octant. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}{num\+Nodes}} ()
\begin{DoxyCompactList}\small\item\em Returns the number of scene nodes attached to this octree. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}{num\+Nodes}} ()
\begin{DoxyCompactList}\small\item\em Returns the number of scene nodes attached to this octree. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \mbox{\hyperlink{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}{m\+Box}}
\begin{DoxyCompactList}\small\item\em The bounding box of the octree. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_octree_a39a5ccd1e93d38c401be53d4a25d015a}{m\+Children}} \mbox{[}2\mbox{]}\mbox{[}2\mbox{]}\mbox{[}2\mbox{]}
\begin{DoxyCompactList}\small\item\em 3D array of children of this octree. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \mbox{\hyperlink{class_ogre_1_1_octree_a77406498d8cf04bc2e7409d28b39d101}{m\+Half\+Size}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_ogre_1_1_vector}{Vector}} containing the dimensions of this octree / 2. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Node\+List}} \mbox{\hyperlink{class_ogre_1_1_octree_aa4040550dfe46fc3c4f02188ac851a85}{m\+Nodes}}
\begin{DoxyCompactList}\small\item\em Public list of Scene\+Nodes attached to this particular octree. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \mbox{\hyperlink{class_ogre_1_1_octree_a7537ed72a492c7100765dfd106e829b5}{m\+Nodes}}
\begin{DoxyCompactList}\small\item\em Public list of Scene\+Nodes attached to this particular octree. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}{m\+Wire\+Bounding\+Box}}
\item 
\mbox{\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_octree_a8cbf0b9d373c3f23cb6fcddd41e45806}{m\+Zone}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} datastructure for managing scene nodes. 

\begin{DoxyRemark}{Remarks}
This is a loose octree implementation, meaning that each octant child of the octree actually overlaps it\textquotesingle{}s siblings by a factor of .5. This guarantees that any thing that is half the size of the parent will fit completely into a child, with no splitting necessary. 
\end{DoxyRemark}


\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}\label{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}} 
\index{Ogre::Octree@{Ogre::Octree}!NodeList@{NodeList}}
\index{NodeList@{NodeList}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{NodeList}{NodeList}}
{\footnotesize\ttfamily typedef std\+::vector$<$ \mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Ogre\+::\+Octree\+::\+Node\+List}}}



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_octree_a9d584bd72ad69de05e900f6e9661dbe0}\label{class_ogre_1_1_octree_a9d584bd72ad69de05e900f6e9661dbe0}} 
\index{Ogre::Octree@{Ogre::Octree}!Octree@{Octree}}
\index{Octree@{Octree}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{Octree()}{Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::\+Octree (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$}]{p }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}\label{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}} 
\index{Ogre::Octree@{Ogre::Octree}!````~Octree@{$\sim$Octree}}
\index{````~Octree@{$\sim$Octree}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{$\sim$Octree()}{~Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::$\sim$\+Octree (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_a0bc7cf568d9cf36667534007937d7cc6}\label{class_ogre_1_1_octree_a0bc7cf568d9cf36667534007937d7cc6}} 
\index{Ogre::Octree@{Ogre::Octree}!Octree@{Octree}}
\index{Octree@{Octree}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{Octree()}{Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::\+Octree (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone}} $\ast$}]{zone,  }\item[{\mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$}]{p }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}\label{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}} 
\index{Ogre::Octree@{Ogre::Octree}!````~Octree@{$\sim$Octree}}
\index{````~Octree@{$\sim$Octree}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{$\sim$Octree()}{~Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::$\sim$\+Octree (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_octree_a2fe8d9cec30399f58fdd8e9481dae2a0}\label{class_ogre_1_1_octree_a2fe8d9cec30399f58fdd8e9481dae2a0}} 
\index{Ogre::Octree@{Ogre::Octree}!\_addNode@{\_addNode}}
\index{\_addNode@{\_addNode}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_addNode()}{\_addNode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+add\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$}]{ }\end{DoxyParamCaption})}



Adds an \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} scene node to this octree level. 

\begin{DoxyRemark}{Remarks}
This is called by the \mbox{\hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager}} after it has determined the correct \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} to insert the node into. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_a1acdc00d8345afd1010c7388e9c78e69}\label{class_ogre_1_1_octree_a1acdc00d8345afd1010c7388e9c78e69}} 
\index{Ogre::Octree@{Ogre::Octree}!\_removeNode@{\_removeNode}}
\index{\_removeNode@{\_removeNode}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_removeNode()}{\_removeNode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+remove\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node}} $\ast$}]{ }\end{DoxyParamCaption})}



Removes an \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} scene node to this octree level. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}\label{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}} 
\index{Ogre::Octree@{Ogre::Octree}!numNodes@{numNodes}}
\index{numNodes@{numNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{numNodes()}{numNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int Ogre\+::\+Octree\+::num\+Nodes (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the number of scene nodes attached to this octree. 

\mbox{\Hypertarget{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}\label{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}} 
\index{Ogre::Octree@{Ogre::Octree}!getWireBoundingBox@{getWireBoundingBox}}
\index{getWireBoundingBox@{getWireBoundingBox}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{getWireBoundingBox()}{getWireBoundingBox()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}}$\ast$ Ogre\+::\+Octree\+::get\+Wire\+Bounding\+Box (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Creates the wire frame bounding box for this octant. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}\label{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}} 
\index{Ogre::Octree@{Ogre::Octree}!\_isTwiceSize@{\_isTwiceSize}}
\index{\_isTwiceSize@{\_isTwiceSize}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_isTwiceSize()}{\_isTwiceSize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Octree\+::\+\_\+is\+Twice\+Size (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&}]{box }\end{DoxyParamCaption}) const}



Determines if this octree is twice as big as the given box. 

\begin{DoxyRemark}{Remarks}
This method is used by the \mbox{\hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager}} to determine if the given box will fit into a child of this octree. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}\label{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}} 
\index{Ogre::Octree@{Ogre::Octree}!\_getChildIndexes@{\_getChildIndexes}}
\index{\_getChildIndexes@{\_getChildIndexes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_getChildIndexes()}{\_getChildIndexes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Child\+Indexes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&}]{,  }\item[{int $\ast$}]{x,  }\item[{int $\ast$}]{y,  }\item[{int $\ast$}]{z }\end{DoxyParamCaption}) const}



Returns the appropriate indexes for the child of this octree into which the box will fit. 

\begin{DoxyRemark}{Remarks}
This is used by the \mbox{\hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager}} to determine which child to traverse next when finding the appropriate octree to insert the box. Since it is a loose octree, only the center of the box is checked to determine the octant. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}\label{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}} 
\index{Ogre::Octree@{Ogre::Octree}!\_getCullBounds@{\_getCullBounds}}
\index{\_getCullBounds@{\_getCullBounds}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_getCullBounds()}{\_getCullBounds()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Cull\+Bounds (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} $\ast$}]{ }\end{DoxyParamCaption}) const}



Creates the \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} used for culling this octree. 

\begin{DoxyRemark}{Remarks}
Since it\textquotesingle{}s a loose octree, the culling bounds can be different than the actual bounds of the octree. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}\label{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}} 
\index{Ogre::Octree@{Ogre::Octree}!\_addNode@{\_addNode}}
\index{\_addNode@{\_addNode}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_addNode()}{\_addNode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+add\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{ }\end{DoxyParamCaption})}



Adds an P\+C\+Zscene node to this octree level. 

\begin{DoxyRemark}{Remarks}
This is called by the \mbox{\hyperlink{class_ogre_1_1_octree_zone}{Octree\+Zone}} after it has determined the correct \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} to insert the node into. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_abe5cf507c82daeccf41dd6814310dfb6}\label{class_ogre_1_1_octree_abe5cf507c82daeccf41dd6814310dfb6}} 
\index{Ogre::Octree@{Ogre::Octree}!\_removeNode@{\_removeNode}}
\index{\_removeNode@{\_removeNode}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_removeNode()}{\_removeNode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+remove\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{ }\end{DoxyParamCaption})}



Removes an P\+C\+Zscene node to this octree level. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}\label{class_ogre_1_1_octree_a374ed37676c4f1ee8679176cf60c9d19}} 
\index{Ogre::Octree@{Ogre::Octree}!numNodes@{numNodes}}
\index{numNodes@{numNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{numNodes()}{numNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily int Ogre\+::\+Octree\+::num\+Nodes (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the number of scene nodes attached to this octree. 

\mbox{\Hypertarget{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}\label{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}} 
\index{Ogre::Octree@{Ogre::Octree}!getWireBoundingBox@{getWireBoundingBox}}
\index{getWireBoundingBox@{getWireBoundingBox}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{getWireBoundingBox()}{getWireBoundingBox()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}}$\ast$ Ogre\+::\+Octree\+::get\+Wire\+Bounding\+Box (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Creates the wire frame bounding box for this octant. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}\label{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}} 
\index{Ogre::Octree@{Ogre::Octree}!\_isTwiceSize@{\_isTwiceSize}}
\index{\_isTwiceSize@{\_isTwiceSize}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_isTwiceSize()}{\_isTwiceSize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Octree\+::\+\_\+is\+Twice\+Size (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&}]{box }\end{DoxyParamCaption}) const}



Determines if this octree is twice as big as the given box. 

\begin{DoxyRemark}{Remarks}
This method is used by the \mbox{\hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager}} to determine if the given box will fit into a child of this octree. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}\label{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}} 
\index{Ogre::Octree@{Ogre::Octree}!\_getChildIndexes@{\_getChildIndexes}}
\index{\_getChildIndexes@{\_getChildIndexes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_getChildIndexes()}{\_getChildIndexes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Child\+Indexes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&}]{,  }\item[{int $\ast$}]{x,  }\item[{int $\ast$}]{y,  }\item[{int $\ast$}]{z }\end{DoxyParamCaption}) const}



Returns the appropriate indexes for the child of this octree into which the box will fit. 

\begin{DoxyRemark}{Remarks}
This is used by the \mbox{\hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager}} to determine which child to traverse next when finding the appropriate octree to insert the box. Since it is a loose octree, only the center of the box is checked to determine the octant. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}\label{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}} 
\index{Ogre::Octree@{Ogre::Octree}!\_getCullBounds@{\_getCullBounds}}
\index{\_getCullBounds@{\_getCullBounds}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_getCullBounds()}{\_getCullBounds()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Cull\+Bounds (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} $\ast$}]{ }\end{DoxyParamCaption}) const}



Creates the \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} used for culling this octree. 

\begin{DoxyRemark}{Remarks}
Since it\textquotesingle{}s a loose octree, the culling bounds can be different than the actual bounds of the octree. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_afd5b49ddb2ac48cd64ea6bfdc8e5f907}\label{class_ogre_1_1_octree_afd5b49ddb2ac48cd64ea6bfdc8e5f907}} 
\index{Ogre::Octree@{Ogre::Octree}!\_findNodes@{\_findNodes}}
\index{\_findNodes@{\_findNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_findNodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \&}]{t,  }\item[{\mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&}]{list,  }\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{exclude,  }\item[{bool}]{include\+Visitors,  }\item[{bool}]{full }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}\label{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}} 
\index{Ogre::Octree@{Ogre::Octree}!\_findNodes@{\_findNodes}}
\index{\_findNodes@{\_findNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_findNodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_ray}{Ray}} \&}]{t,  }\item[{\mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&}]{list,  }\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{exclude,  }\item[{bool}]{include\+Visitors,  }\item[{bool}]{full }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_a1bd7ec446024caf270a5334d178a19fa}\label{class_ogre_1_1_octree_a1bd7ec446024caf270a5334d178a19fa}} 
\index{Ogre::Octree@{Ogre::Octree}!\_findNodes@{\_findNodes}}
\index{\_findNodes@{\_findNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_findNodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_sphere}{Sphere}} \&}]{t,  }\item[{\mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&}]{list,  }\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{exclude,  }\item[{bool}]{include\+Visitors,  }\item[{bool}]{full }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_octree_aa2c86e2043b3eaec38ebe7194dab40c6}\label{class_ogre_1_1_octree_aa2c86e2043b3eaec38ebe7194dab40c6}} 
\index{Ogre::Octree@{Ogre::Octree}!\_findNodes@{\_findNodes}}
\index{\_findNodes@{\_findNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{\_findNodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_plane_bounded_volume}{Plane\+Bounded\+Volume}} \&}]{t,  }\item[{\mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} \&}]{list,  }\item[{\mbox{\hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node}} $\ast$}]{exclude,  }\item[{bool}]{include\+Visitors,  }\item[{bool}]{full }\end{DoxyParamCaption})}



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}\label{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}} 
\index{Ogre::Octree@{Ogre::Octree}!mBox@{mBox}}
\index{mBox@{mBox}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mBox}{mBox}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} Ogre\+::\+Octree\+::m\+Box}



The bounding box of the octree. 

\begin{DoxyRemark}{Remarks}
This is used for octant index determination and rendering, but not culling 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}\label{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}} 
\index{Ogre::Octree@{Ogre::Octree}!mWireBoundingBox@{mWireBoundingBox}}
\index{mWireBoundingBox@{mWireBoundingBox}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mWireBoundingBox}{mWireBoundingBox}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box}} $\ast$ Ogre\+::\+Octree\+::m\+Wire\+Bounding\+Box}

\mbox{\Hypertarget{class_ogre_1_1_octree_a77406498d8cf04bc2e7409d28b39d101}\label{class_ogre_1_1_octree_a77406498d8cf04bc2e7409d28b39d101}} 
\index{Ogre::Octree@{Ogre::Octree}!mHalfSize@{mHalfSize}}
\index{mHalfSize@{mHalfSize}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mHalfSize}{mHalfSize}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} Ogre\+::\+Octree\+::m\+Half\+Size}



\mbox{\hyperlink{class_ogre_1_1_vector}{Vector}} containing the dimensions of this octree / 2. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a39a5ccd1e93d38c401be53d4a25d015a}\label{class_ogre_1_1_octree_a39a5ccd1e93d38c401be53d4a25d015a}} 
\index{Ogre::Octree@{Ogre::Octree}!mChildren@{mChildren}}
\index{mChildren@{mChildren}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mChildren}{mChildren}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}} $\ast$ Ogre\+::\+Octree\+::m\+Children}



3D array of children of this octree. 

\begin{DoxyRemark}{Remarks}
Children are dynamically created as needed when nodes are inserted in the \mbox{\hyperlink{class_ogre_1_1_octree}{Octree}}. If, later, all the nodes are removed from the child, it is still kept around. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_octree_aa4040550dfe46fc3c4f02188ac851a85}\label{class_ogre_1_1_octree_aa4040550dfe46fc3c4f02188ac851a85}} 
\index{Ogre::Octree@{Ogre::Octree}!mNodes@{mNodes}}
\index{mNodes@{mNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mNodes}{mNodes}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Node\+List}} Ogre\+::\+Octree\+::m\+Nodes}



Public list of Scene\+Nodes attached to this particular octree. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a7537ed72a492c7100765dfd106e829b5}\label{class_ogre_1_1_octree_a7537ed72a492c7100765dfd106e829b5}} 
\index{Ogre::Octree@{Ogre::Octree}!mNodes@{mNodes}}
\index{mNodes@{mNodes}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mNodes}{mNodes}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___octree_zone_ga2f69b6c1afcc4ce28d077acae1b4f432}{P\+C\+Z\+Scene\+Node\+List}} Ogre\+::\+Octree\+::m\+Nodes}



Public list of Scene\+Nodes attached to this particular octree. 

\mbox{\Hypertarget{class_ogre_1_1_octree_a8cbf0b9d373c3f23cb6fcddd41e45806}\label{class_ogre_1_1_octree_a8cbf0b9d373c3f23cb6fcddd41e45806}} 
\index{Ogre::Octree@{Ogre::Octree}!mZone@{mZone}}
\index{mZone@{mZone}!Ogre::Octree@{Ogre::Octree}}
\doxysubsubsection{\texorpdfstring{mZone}{mZone}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone}}$\ast$ Ogre\+::\+Octree\+::m\+Zone}



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_octree_8h}{Ogre\+Octree.\+h}}\item 
\mbox{\hyperlink{_ogre_octree_zone_octree_8h}{Ogre\+Octree\+Zone\+Octree.\+h}}\end{DoxyCompactItemize}
