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


\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}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \hyperlink{class_ogre_1_1_octree_node}{Octree\+Node} $\ast$$>$ \hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Node\+List}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_octree_a9d584bd72ad69de05e900f6e9661dbe0}{Octree} (\hyperlink{class_ogre_1_1_octree}{Octree} $\ast$p)
\item 
\hyperlink{class_ogre_1_1_octree_a0bc7cf568d9cf36667534007937d7cc6}{Octree} (\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone} $\ast$zone, \hyperlink{class_ogre_1_1_octree}{Octree} $\ast$p)
\item 
\hyperlink{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}{$\sim$\+Octree} ()
\item 
\hyperlink{class_ogre_1_1_octree_a981593f0c5d1d02736b68e83bfea5111}{$\sim$\+Octree} ()
\item 
void \hyperlink{class_ogre_1_1_octree_a2fe8d9cec30399f58fdd8e9481dae2a0}{\+\_\+add\+Node} (\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node} $\ast$)
\begin{DoxyCompactList}\small\item\em Adds an \hyperlink{class_ogre_1_1_octree}{Octree} scene node to this octree level. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}{\+\_\+add\+Node} (\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 \hyperlink{class_ogre_1_1_octree_afd5b49ddb2ac48cd64ea6bfdc8e5f907}{\+\_\+find\+Nodes} (const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \&t, \hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&\hyperlink{struct_ogre_1_1list}{list}, \hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \hyperlink{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}{\+\_\+find\+Nodes} (const \hyperlink{class_ogre_1_1_ray}{Ray} \&t, \hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&\hyperlink{struct_ogre_1_1list}{list}, \hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \hyperlink{class_ogre_1_1_octree_a1bd7ec446024caf270a5334d178a19fa}{\+\_\+find\+Nodes} (const \hyperlink{class_ogre_1_1_sphere}{Sphere} \&t, \hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&\hyperlink{struct_ogre_1_1list}{list}, \hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \hyperlink{class_ogre_1_1_octree_aa2c86e2043b3eaec38ebe7194dab40c6}{\+\_\+find\+Nodes} (const \hyperlink{class_ogre_1_1_plane_bounded_volume}{Plane\+Bounded\+Volume} \&t, \hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&\hyperlink{struct_ogre_1_1list}{list}, \hyperlink{class_ogre_1_1_p_c_z_scene_node}{P\+C\+Z\+Scene\+Node} $\ast$exclude, bool include\+Visitors, bool full)
\item 
void \hyperlink{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}{\+\_\+get\+Child\+Indexes} (const \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 \hyperlink{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}{\+\_\+get\+Child\+Indexes} (const \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 \hyperlink{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}{\+\_\+get\+Cull\+Bounds} (\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} $\ast$) const
\begin{DoxyCompactList}\small\item\em Creates the \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} used for culling this octree. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}{\+\_\+get\+Cull\+Bounds} (\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} $\ast$) const
\begin{DoxyCompactList}\small\item\em Creates the \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} used for culling this octree. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}{\+\_\+is\+Twice\+Size} (const \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 \hyperlink{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}{\+\_\+is\+Twice\+Size} (const \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 \hyperlink{class_ogre_1_1_octree_a1acdc00d8345afd1010c7388e9c78e69}{\+\_\+remove\+Node} (\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node} $\ast$)
\begin{DoxyCompactList}\small\item\em Removes an \hyperlink{class_ogre_1_1_octree}{Octree} scene node to this octree level. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_octree_abe5cf507c82daeccf41dd6814310dfb6}{\+\_\+remove\+Node} (\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 
\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box} $\ast$ \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 
\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box} $\ast$ \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 \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 \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}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \hyperlink{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}{m\+Box}
\begin{DoxyCompactList}\small\item\em The bounding box of the octree. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_octree}{Octree} $\ast$ \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 
\hyperlink{class_ogre_1_1_vector3}{Vector3} \hyperlink{class_ogre_1_1_octree_a77406498d8cf04bc2e7409d28b39d101}{m\+Half\+Size}
\begin{DoxyCompactList}\small\item\em Vector containing the dimensions of this octree / 2. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_octree_a87489889d822f09b5ccc38940a8d36ec}{Node\+List} \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 
\hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \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 
\hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box} $\ast$ \hyperlink{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}{m\+Wire\+Bounding\+Box}
\item 
\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone} $\ast$ \hyperlink{class_ogre_1_1_octree_a8cbf0b9d373c3f23cb6fcddd41e45806}{m\+Zone}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\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}


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



\subsection{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}}
\subsubsection{\texorpdfstring{Octree()}{Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::\+Octree (\begin{DoxyParamCaption}\item[{\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}}
\subsubsection{\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}}
\subsubsection{\texorpdfstring{Octree()}{Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::\+Octree (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_p_c_zone}{P\+C\+Zone} $\ast$}]{zone,  }\item[{\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}}
\subsubsection{\texorpdfstring{$\sim$\+Octree()}{~Octree()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Octree\+::$\sim$\+Octree (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



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



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

\begin{DoxyRemark}{Remarks}
This is called by the \hyperlink{class_ogre_1_1_octree_scene_manager}{Octree\+Scene\+Manager} after it has determined the correct \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}!\+\_\+remove\+Node@{\+\_\+remove\+Node}}
\index{\+\_\+remove\+Node@{\+\_\+remove\+Node}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+remove\+Node()}{\_removeNode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+remove\+Node (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_octree_node}{Octree\+Node} $\ast$}]{ }\end{DoxyParamCaption})}



Removes an \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}!num\+Nodes@{num\+Nodes}}
\index{num\+Nodes@{num\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{num\+Nodes()}{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}!get\+Wire\+Bounding\+Box@{get\+Wire\+Bounding\+Box}}
\index{get\+Wire\+Bounding\+Box@{get\+Wire\+Bounding\+Box}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{get\+Wire\+Bounding\+Box()}{getWireBoundingBox()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \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. 



Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}\label{class_ogre_1_1_octree_a2ff291abdb11503894ea025d27f15dd4}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!\+\_\+is\+Twice\+Size@{\+\_\+is\+Twice\+Size}}
\index{\+\_\+is\+Twice\+Size@{\+\_\+is\+Twice\+Size}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+is\+Twice\+Size()}{\_isTwiceSize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Octree\+::\+\_\+is\+Twice\+Size (\begin{DoxyParamCaption}\item[{const \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 \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}


Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}\label{class_ogre_1_1_octree_ae8036b7474ece66fbfa6e842ab41bcac}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!\+\_\+get\+Child\+Indexes@{\+\_\+get\+Child\+Indexes}}
\index{\+\_\+get\+Child\+Indexes@{\+\_\+get\+Child\+Indexes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+get\+Child\+Indexes()}{\_getChildIndexes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Child\+Indexes (\begin{DoxyParamCaption}\item[{const \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 \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}


Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}\label{class_ogre_1_1_octree_a978b604c5af1f2b38184f492d0842633}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!\+\_\+get\+Cull\+Bounds@{\+\_\+get\+Cull\+Bounds}}
\index{\+\_\+get\+Cull\+Bounds@{\+\_\+get\+Cull\+Bounds}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+get\+Cull\+Bounds()}{\_getCullBounds()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Cull\+Bounds (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} $\ast$}]{ }\end{DoxyParamCaption}) const}



Creates the \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}


Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}\label{class_ogre_1_1_octree_acacaceab5a754ba17670c33361016b5c}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!\+\_\+add\+Node@{\+\_\+add\+Node}}
\index{\+\_\+add\+Node@{\+\_\+add\+Node}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+add\+Node()}{\_addNode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+add\+Node (\begin{DoxyParamCaption}\item[{\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 \hyperlink{class_ogre_1_1_octree_zone}{Octree\+Zone} after it has determined the correct \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}!\+\_\+remove\+Node@{\+\_\+remove\+Node}}
\index{\+\_\+remove\+Node@{\+\_\+remove\+Node}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+remove\+Node()}{\_removeNode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+remove\+Node (\begin{DoxyParamCaption}\item[{\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}!num\+Nodes@{num\+Nodes}}
\index{num\+Nodes@{num\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{num\+Nodes()}{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. 



References \+\_\+find\+Nodes(), \+\_\+get\+Child\+Indexes(), \+\_\+get\+Cull\+Bounds(), \+\_\+is\+Twice\+Size(), get\+Wire\+Bounding\+Box(), m\+Box, m\+Children, m\+Half\+Size, and m\+Wire\+Bounding\+Box.

\mbox{\Hypertarget{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}\label{class_ogre_1_1_octree_aefee17f571e0682e92229dbd99e764bb}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!get\+Wire\+Bounding\+Box@{get\+Wire\+Bounding\+Box}}
\index{get\+Wire\+Bounding\+Box@{get\+Wire\+Bounding\+Box}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{get\+Wire\+Bounding\+Box()}{getWireBoundingBox()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \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}!\+\_\+is\+Twice\+Size@{\+\_\+is\+Twice\+Size}}
\index{\+\_\+is\+Twice\+Size@{\+\_\+is\+Twice\+Size}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+is\+Twice\+Size()}{\_isTwiceSize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Octree\+::\+\_\+is\+Twice\+Size (\begin{DoxyParamCaption}\item[{const \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 \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}!\+\_\+get\+Child\+Indexes@{\+\_\+get\+Child\+Indexes}}
\index{\+\_\+get\+Child\+Indexes@{\+\_\+get\+Child\+Indexes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+get\+Child\+Indexes()}{\_getChildIndexes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Child\+Indexes (\begin{DoxyParamCaption}\item[{const \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 \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}!\+\_\+get\+Cull\+Bounds@{\+\_\+get\+Cull\+Bounds}}
\index{\+\_\+get\+Cull\+Bounds@{\+\_\+get\+Cull\+Bounds}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+get\+Cull\+Bounds()}{\_getCullBounds()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+get\+Cull\+Bounds (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} $\ast$}]{ }\end{DoxyParamCaption}) const}



Creates the \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}!\+\_\+find\+Nodes@{\+\_\+find\+Nodes}}
\index{\+\_\+find\+Nodes@{\+\_\+find\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+find\+Nodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \&}]{t,  }\item[{\hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&}]{list,  }\item[{\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})}



Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}\label{class_ogre_1_1_octree_a67d1ea2828b521afbfe27858f74888d7}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!\+\_\+find\+Nodes@{\+\_\+find\+Nodes}}
\index{\+\_\+find\+Nodes@{\+\_\+find\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+find\+Nodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_ray}{Ray} \&}]{t,  }\item[{\hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&}]{list,  }\item[{\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}!\+\_\+find\+Nodes@{\+\_\+find\+Nodes}}
\index{\+\_\+find\+Nodes@{\+\_\+find\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+find\+Nodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_sphere}{Sphere} \&}]{t,  }\item[{\hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&}]{list,  }\item[{\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}!\+\_\+find\+Nodes@{\+\_\+find\+Nodes}}
\index{\+\_\+find\+Nodes@{\+\_\+find\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{\+\_\+find\+Nodes()}{\_findNodes()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Octree\+::\+\_\+find\+Nodes (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_plane_bounded_volume}{Plane\+Bounded\+Volume} \&}]{t,  }\item[{\hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{P\+C\+Z\+Scene\+Node\+List} \&}]{list,  }\item[{\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})}



\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}\label{class_ogre_1_1_octree_a562c69273f5f24da891c10d4ad3efec4}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!m\+Box@{m\+Box}}
\index{m\+Box@{m\+Box}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Box}{mBox}}
{\footnotesize\ttfamily \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}


Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}\label{class_ogre_1_1_octree_a2d5a7a952374d9b76bfb3bae0f6ccefb}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!m\+Wire\+Bounding\+Box@{m\+Wire\+Bounding\+Box}}
\index{m\+Wire\+Bounding\+Box@{m\+Wire\+Bounding\+Box}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Wire\+Bounding\+Box}{mWireBoundingBox}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_wire_bounding_box}{Wire\+Bounding\+Box} $\ast$ Ogre\+::\+Octree\+::m\+Wire\+Bounding\+Box}



Referenced by num\+Nodes().

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



Vector containing the dimensions of this octree / 2. 



Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_a39a5ccd1e93d38c401be53d4a25d015a}\label{class_ogre_1_1_octree_a39a5ccd1e93d38c401be53d4a25d015a}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!m\+Children@{m\+Children}}
\index{m\+Children@{m\+Children}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Children}{mChildren}}
{\footnotesize\ttfamily \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 \hyperlink{class_ogre_1_1_octree}{Octree}. If, later, all the nodes are removed from the child, it is still kept around. 
\end{DoxyRemark}


Referenced by num\+Nodes().

\mbox{\Hypertarget{class_ogre_1_1_octree_aa4040550dfe46fc3c4f02188ac851a85}\label{class_ogre_1_1_octree_aa4040550dfe46fc3c4f02188ac851a85}} 
\index{Ogre\+::\+Octree@{Ogre\+::\+Octree}!m\+Nodes@{m\+Nodes}}
\index{m\+Nodes@{m\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Nodes}{mNodes}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \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}!m\+Nodes@{m\+Nodes}}
\index{m\+Nodes@{m\+Nodes}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Nodes}{mNodes}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{group___octree_zone_gae3e5e04772a5b41fa3023d158c73b526}{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}!m\+Zone@{m\+Zone}}
\index{m\+Zone@{m\+Zone}!Ogre\+::\+Octree@{Ogre\+::\+Octree}}
\subsubsection{\texorpdfstring{m\+Zone}{mZone}}
{\footnotesize\ttfamily \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 
\hyperlink{_ogre_octree_8h}{Ogre\+Octree.\+h}\item 
\hyperlink{_ogre_octree_zone_octree_8h}{Ogre\+Octree\+Zone\+Octree.\+h}\end{DoxyCompactItemize}
