\hypertarget{class_ogre_1_1_terrain_quad_tree_node}{}\doxysection{Ogre\+::Terrain\+Quad\+Tree\+Node Class Reference}
\label{class_ogre_1_1_terrain_quad_tree_node}\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}


A node in a quad tree used to store a patch of terrain.  




{\ttfamily \#include $<$Ogre\+Terrain\+Quad\+Tree\+Node.\+h$>$}



Inheritance diagram for Ogre\+::Terrain\+Quad\+Tree\+Node\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=230pt]{class_ogre_1_1_terrain_quad_tree_node__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_aae9eb87fc6a1843c06184ef091b12d69}{Lod\+Level\+List}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a05457470c9da0ed6ebff4c32159d6395}{Terrain\+Quad\+Tree\+Node}} (\mbox{\hyperlink{class_ogre_1_1_terrain}{Terrain}} $\ast$terrain, \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$parent, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} xoff, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} yoff, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} size, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} lod, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} depth, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} quadrant)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a525a7166daaa69292b2350de66784f58}{$\sim$\+Terrain\+Quad\+Tree\+Node}} ()
\item 
\mbox{\hyperlink{class_ogre_1_1_renderable}{Renderable}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a00f0af5c87629eadd07f6063284573f8}{\+\_\+get\+Renderable}} ()
\begin{DoxyCompactList}\small\item\em Returns the internal renderable object for this node. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ac03be7a6beb8e94439c51cdce1c2985e}{assign\+Vertex\+Data}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} tree\+Depth\+Start, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} tree\+Depth\+End, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} resolution, \mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}} sz)
\begin{DoxyCompactList}\small\item\em Assign vertex data to the tree, from a depth and at a given resolution. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a619cb859cf6a6501ab3c60bf2674cc1b}{calculate\+Current\+Lod}} (const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$cam, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} c\+Factor)
\begin{DoxyCompactList}\small\item\em Calculate appropriate L\+OD for this node and children. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ac0400ce23ffa563bd4b310c946017b9a}{finalise\+Delta\+Values}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Promote the delta values calculated to the runtime ones (this must be called in the main thread). \end{DoxyCompactList}\item 
const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}} \& \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a7e67547296a540fb127c76c6e2a3c935}{get\+A\+A\+BB}} () const
\begin{DoxyCompactList}\small\item\em Get the A\+A\+BB (local coords) of this node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_abfeaf6e5696bb7a4b410216c9bbe0ca0}{get\+Base\+Lod}} () const
\begin{DoxyCompactList}\small\item\em Get the base L\+OD level this node starts at (the highest L\+OD it handles) \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_afb34be129bba773c740ed737f5632950}{get\+Bounding\+Radius}} () const
\begin{DoxyCompactList}\small\item\em Get the bounding radius of this node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_abe4d32f693e45b4019f4dc82562dc9ce}{get\+Child}} (unsigned short child) const
\begin{DoxyCompactList}\small\item\em Get child node. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a7302f88752914ed407eb1ce141b88a4f}{get\+Current\+Lod}} () const
\begin{DoxyCompactList}\small\item\em Get the current L\+OD index (only valid after calculate\+Current\+Lod) \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \& \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a646c0f6ec02e780cc6bcd29d80339bd9}{get\+Local\+Centre}} () const
\begin{DoxyCompactList}\small\item\em Get the local centre of this node, relative to parent terrain centre. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a65a4d6c836307d05d01aaab86931094b}{get\+Lod\+Count}} () const
\begin{DoxyCompactList}\small\item\em Get the number of L\+OD levels this node can represent itself (only $>$ 1 for leaf nodes) \end{DoxyCompactList}\item 
const \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a14c742793b0983c19e0993d25f6ed678}{get\+Lod\+Level}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} lod)
\begin{DoxyCompactList}\small\item\em Get the \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}} information for a given lod. \end{DoxyCompactList}\item 
float \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ae116a598286815a4702dc8159301d2e6}{get\+Lod\+Transition}} () const
\begin{DoxyCompactList}\small\item\em Get the transition state between the current L\+OD and the next lower one (only valid after calculate\+Current\+Lod) \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a1a2433c6e02f4434a43be08c6c1b9fc9}{get\+Max\+Height}} () const
\begin{DoxyCompactList}\small\item\em Get the maximum height of the node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a8c7eb959dae089d763e027ef3e459abd}{get\+Min\+Height}} () const
\begin{DoxyCompactList}\small\item\em Get the minimum height of the node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a611c49125d329651fe9fc2f92fcacac9}{get\+Parent}} () const
\begin{DoxyCompactList}\small\item\em Get parent node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_terrain}{Terrain}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a3b09e96c2aa4e45d3f212c90ae4d5c1f}{get\+Terrain}} () const
\begin{DoxyCompactList}\small\item\em Get ultimate parent terrain. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a21057fc9dca730125457d9fb0e7d4588}{get\+X\+Offset}} () const
\begin{DoxyCompactList}\small\item\em Get the horizontal offset into the main terrain data of this node. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ad0c51ed8fa618bd7dd8df1712141f742}{get\+Y\+Offset}} () const
\begin{DoxyCompactList}\small\item\em Get the vertical offset into the main terrain data of this node. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a93905e98254406040235005324cdb56e}{is\+Leaf}} () const
\begin{DoxyCompactList}\small\item\em Is this a leaf node (no children) \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a38313e6b615d8df43e62ee721e576f22}{is\+Rendered\+At\+Current\+Lod}} () const
\begin{DoxyCompactList}\small\item\em Returns whether this node is rendering itself at the current L\+OD level. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a08466f3ed294f0ff9fc74feea3a9fff2}{is\+Self\+Or\+Child\+Rendered\+At\+Current\+Lod}} () const
\begin{DoxyCompactList}\small\item\em Returns whether this node or its children are being rendered at the current L\+OD level. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a640fe3ce61b4c3d342ef6df439c27595}{load}} ()
\begin{DoxyCompactList}\small\item\em Load node and children (perform G\+PU tasks, will be render thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a0116ccf6d9c0ded0c099210ca5024d0f}{load}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} depth\+Start, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} depth\+End)
\begin{DoxyCompactList}\small\item\em Load node and children in a depth range (perform G\+PU tasks, will be render thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a3a15c3342a52eccd843ef5710614bb73}{load\+Self}} ()
\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a8700cbc04c5a88fc98fcb9801440ab01}{merge\+Into\+Bounds}} (long x, long y, const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&pos)
\begin{DoxyCompactList}\small\item\em Merge a point (relative to terrain node) into the local bounds, and that of children if applicable. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ad3f99f3c71c1bff1d323007020f813d5}{notify\+Delta}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} x, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} y, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} lod, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} delta)
\begin{DoxyCompactList}\small\item\em Notify the node (and children) of a height delta value. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a67493d0f5329e958ea9747e30b32fa55}{point\+Intersects\+Node}} (long x, long y)
\begin{DoxyCompactList}\small\item\em Returns true if the given point is in the terrain area that this node references. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a27b042a63b10b1eab460404b69054cf6}{post\+Delta\+Calculation}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Notify the node (and children) that deltas have finished being calculated. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a15a0aedbb91a7304d1802456f66ab6e5}{pre\+Delta\+Calculation}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Notify the node (and children) that deltas are going to be calculated for a given range. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a440a2d098b05930f9c041bcce1fc3a90}{prepare}} ()
\begin{DoxyCompactList}\small\item\em Prepare node and children (perform C\+PU tasks, may be background thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a6bac673d08ec9c0a2ede17eb16760aac}{prepare}} (\mbox{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}} \&stream)
\begin{DoxyCompactList}\small\item\em Prepare node from a stream. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ab89d0817244bb68ab25500eec8c360c2}{rect\+Contains\+Node}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Returns true if the given rectangle completely contains the terrain area that this node references. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_af27dbb3371e5c51772e304eef37afb3f}{rect\+Intersects\+Node}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Returns true if the given rectangle overlaps the terrain area that this node references. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a9cce18f539fce6e45f71dfe533864eef}{reset\+Bounds}} (const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect)
\begin{DoxyCompactList}\small\item\em Reset the bounds of this node and all its children for the region given. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ac99dc8a7163f38da4944bffc25a76df7}{save}} (\mbox{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}} \&stream)
\begin{DoxyCompactList}\small\item\em Save node to a stream. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a61cddd999eed248ede1e7015b17040e0}{set\+Current\+Lod}} (int lod)
\begin{DoxyCompactList}\small\item\em Manually set the current L\+OD, intended for internal use only. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_aef26e2fc5a8ce61b42111b85bd8bcbea}{set\+Lod\+Transition}} (float t)
\begin{DoxyCompactList}\small\item\em Manually set the current L\+OD transition state, intended for internal use only. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a00fd0fa40466d2d443c7f65fb6c9c4fd}{unload}} ()
\begin{DoxyCompactList}\small\item\em Unload node and children (perform G\+PU tasks, will be render thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ae88989b432172c3b8321390abd245dcf}{unload}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} depth\+Start, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} depth\+End)
\begin{DoxyCompactList}\small\item\em Unload node and children in a depth range (perform G\+PU tasks, will be render thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ad7ab8a8510a9a070486fcafd6d7acd02}{unprepare}} ()
\begin{DoxyCompactList}\small\item\em Unprepare node and children (perform C\+PU tasks, may be background thread) \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a7e0ca778e275f9fd825a97fcf223fe36}{update\+Vertex\+Data}} (bool positions, bool deltas, const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&rect, bool cpu\+Data)
\begin{DoxyCompactList}\small\item\em Tell the node to update its vertex data for a given region. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a20aec2a5359be7a4621188e98c6fdd4e}{use\+Ancestor\+Vertex\+Data}} (\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$owner, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} tree\+Depth\+End, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} resolution)
\begin{DoxyCompactList}\small\item\em Tell a node that it should use an anscestor\textquotesingle{}s vertex data. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static unsigned short \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a570b17be150e8de773197f801a6a2a2e}{D\+E\+L\+T\+A\+\_\+\+B\+U\+F\+F\+ER}}
\begin{DoxyCompactList}\small\item\em Buffer binding used for holding delta values. \end{DoxyCompactList}\item 
static unsigned short \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ad2d323266710dcd2847eeb20af7ed734}{P\+O\+S\+I\+T\+I\+O\+N\+\_\+\+B\+U\+F\+F\+ER}}
\begin{DoxyCompactList}\small\item\em Buffer binding used for holding positions. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_a580bc16a3fc18eb382fed53c6a31c365}{Movable}}
\item 
class \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_ad27630b21ec9f09d2b5f23dffd484aa7}{Rend}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A node in a quad tree used to store a patch of terrain. 

\begin{DoxyRemark}{Remarks}
{\bfseries{Algorithm overview\+:}} 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Our goal is to perform traditional chunked L\+OD with geomorphing. But, instead of just dividing the terrain into tiles, we will divide them into a hierarchy of tiles, a quadtree, where any level of the quadtree can be a rendered tile (to the exclusion of its children). The idea is to collect together children into a larger batch with their siblings as L\+OD decreases, to improve performance. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
The min\+Batch\+Size and max\+Batch\+Size parameters on \mbox{\hyperlink{class_ogre_1_1_terrain}{Terrain}} a key to defining this behaviour. Both values are expressed in vertices down one axis. max\+Batch\+Size determines the number of tiles on one side of the terrain, which is num\+Tiles = (terrain\+Size-\/1) / (max\+Batch\+Size-\/1). This in turn determines the depth of the quad tree, which is sqrt(num\+Tiles). The min\+Batch\+Size determines the \textquotesingle{}floor\textquotesingle{} of how low the number of vertices can go in a tile before it has to be grouped together with its siblings to drop any lower. We also do not group a tile with its siblings unless all of them are at this minimum batch size, rather than trying to group them when they all end up on the same \textquotesingle{}middle\textquotesingle{} L\+OD; this is for several reasons; firstly, tiles hitting the same \textquotesingle{}middle\textquotesingle{} L\+OD is less likely and more transient if they have different levels of \textquotesingle{}roughness\textquotesingle{}, and secondly since we\textquotesingle{}re sharing a vertex / index pool between all tiles, only grouping at the min level means that the number of combinations of buffer sizes for any one tile is greatly simplified, making it easier to pool data. To be more specific, any tile / quadtree node can only have log2(max\+Batch\+Size-\/1) -\/ log2(min\+Batch\+Size-\/1) + 1 L\+OD levels (and if you set them to the same value, L\+OD can only change by going up/down the quadtree). The numbers of vertices / indices in each of these levels is constant for the same (relative) L\+OD index no matter where you are in the tree, therefore buffers can potentially be reused more easily. 
\end{DoxyParagraph}


\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_aae9eb87fc6a1843c06184ef091b12d69}\label{class_ogre_1_1_terrain_quad_tree_node_aae9eb87fc6a1843c06184ef091b12d69}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!LodLevelList@{LodLevelList}}
\index{LodLevelList@{LodLevelList}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{LodLevelList}{LodLevelList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}}$\ast$$>$ \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_aae9eb87fc6a1843c06184ef091b12d69}{Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::\+Lod\+Level\+List}}}



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a05457470c9da0ed6ebff4c32159d6395}\label{class_ogre_1_1_terrain_quad_tree_node_a05457470c9da0ed6ebff4c32159d6395}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!TerrainQuadTreeNode@{TerrainQuadTreeNode}}
\index{TerrainQuadTreeNode@{TerrainQuadTreeNode}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{TerrainQuadTreeNode()}{TerrainQuadTreeNode()}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::\+Terrain\+Quad\+Tree\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_terrain}{Terrain}} $\ast$}]{terrain,  }\item[{\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$}]{parent,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{xoff,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{yoff,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{size,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{lod,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{depth,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{quadrant }\end{DoxyParamCaption})}



Constructor. 


\begin{DoxyParams}{Parameters}
{\em terrain} & The ultimate parent terrain \\
\hline
{\em parent} & Optional parent node (in which case xoff, yoff are 0 and size must be entire terrain) \\
\hline
{\em xoff,yoff} & Offsets from the start of the terrain data in 2D \\
\hline
{\em size} & The size of the node in vertices at the highest L\+OD \\
\hline
{\em lod} & The base L\+OD level \\
\hline
{\em depth} & The depth that this node is at in the tree (or convenience) \\
\hline
{\em quadrant} & The index of the quadrant (0, 1, 2, 3) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a525a7166daaa69292b2350de66784f58}\label{class_ogre_1_1_terrain_quad_tree_node_a525a7166daaa69292b2350de66784f58}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!````~TerrainQuadTreeNode@{$\sim$TerrainQuadTreeNode}}
\index{````~TerrainQuadTreeNode@{$\sim$TerrainQuadTreeNode}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{$\sim$TerrainQuadTreeNode()}{~TerrainQuadTreeNode()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::$\sim$\+Terrain\+Quad\+Tree\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a21057fc9dca730125457d9fb0e7d4588}\label{class_ogre_1_1_terrain_quad_tree_node_a21057fc9dca730125457d9fb0e7d4588}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getXOffset@{getXOffset}}
\index{getXOffset@{getXOffset}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getXOffset()}{getXOffset()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+X\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the horizontal offset into the main terrain data of this node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ad0c51ed8fa618bd7dd8df1712141f742}\label{class_ogre_1_1_terrain_quad_tree_node_ad0c51ed8fa618bd7dd8df1712141f742}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getYOffset@{getYOffset}}
\index{getYOffset@{getYOffset}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getYOffset()}{getYOffset()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Y\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the vertical offset into the main terrain data of this node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a93905e98254406040235005324cdb56e}\label{class_ogre_1_1_terrain_quad_tree_node_a93905e98254406040235005324cdb56e}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!isLeaf@{isLeaf}}
\index{isLeaf@{isLeaf}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{isLeaf()}{isLeaf()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::is\+Leaf (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Is this a leaf node (no children) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_abfeaf6e5696bb7a4b410216c9bbe0ca0}\label{class_ogre_1_1_terrain_quad_tree_node_abfeaf6e5696bb7a4b410216c9bbe0ca0}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getBaseLod@{getBaseLod}}
\index{getBaseLod@{getBaseLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getBaseLod()}{getBaseLod()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Base\+Lod (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the base L\+OD level this node starts at (the highest L\+OD it handles) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a65a4d6c836307d05d01aaab86931094b}\label{class_ogre_1_1_terrain_quad_tree_node_a65a4d6c836307d05d01aaab86931094b}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getLodCount@{getLodCount}}
\index{getLodCount@{getLodCount}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getLodCount()}{getLodCount()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Lod\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the number of L\+OD levels this node can represent itself (only $>$ 1 for leaf nodes) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_abe4d32f693e45b4019f4dc82562dc9ce}\label{class_ogre_1_1_terrain_quad_tree_node_abe4d32f693e45b4019f4dc82562dc9ce}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getChild@{getChild}}
\index{getChild@{getChild}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getChild()}{getChild()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}}$\ast$ Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Child (\begin{DoxyParamCaption}\item[{unsigned short}]{child }\end{DoxyParamCaption}) const}



Get child node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a611c49125d329651fe9fc2f92fcacac9}\label{class_ogre_1_1_terrain_quad_tree_node_a611c49125d329651fe9fc2f92fcacac9}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getParent@{getParent}}
\index{getParent@{getParent}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getParent()}{getParent()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}}$\ast$ Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Parent (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get parent node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a3b09e96c2aa4e45d3f212c90ae4d5c1f}\label{class_ogre_1_1_terrain_quad_tree_node_a3b09e96c2aa4e45d3f212c90ae4d5c1f}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getTerrain@{getTerrain}}
\index{getTerrain@{getTerrain}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getTerrain()}{getTerrain()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_terrain}{Terrain}}$\ast$ Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Terrain (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get ultimate parent terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a440a2d098b05930f9c041bcce1fc3a90}\label{class_ogre_1_1_terrain_quad_tree_node_a440a2d098b05930f9c041bcce1fc3a90}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::prepare (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Prepare node and children (perform C\+PU tasks, may be background thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a6bac673d08ec9c0a2ede17eb16760aac}\label{class_ogre_1_1_terrain_quad_tree_node_a6bac673d08ec9c0a2ede17eb16760aac}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::prepare (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}} \&}]{stream }\end{DoxyParamCaption})}



Prepare node from a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a640fe3ce61b4c3d342ef6df439c27595}\label{class_ogre_1_1_terrain_quad_tree_node_a640fe3ce61b4c3d342ef6df439c27595}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!load@{load}}
\index{load@{load}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{load()}{load()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::load (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Load node and children (perform G\+PU tasks, will be render thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a0116ccf6d9c0ded0c099210ca5024d0f}\label{class_ogre_1_1_terrain_quad_tree_node_a0116ccf6d9c0ded0c099210ca5024d0f}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!load@{load}}
\index{load@{load}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{load()}{load()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::load (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{depth\+Start,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{depth\+End }\end{DoxyParamCaption})}



Load node and children in a depth range (perform G\+PU tasks, will be render thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a3a15c3342a52eccd843ef5710614bb73}\label{class_ogre_1_1_terrain_quad_tree_node_a3a15c3342a52eccd843ef5710614bb73}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!loadSelf@{loadSelf}}
\index{loadSelf@{loadSelf}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{loadSelf()}{loadSelf()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::load\+Self (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a00fd0fa40466d2d443c7f65fb6c9c4fd}\label{class_ogre_1_1_terrain_quad_tree_node_a00fd0fa40466d2d443c7f65fb6c9c4fd}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!unload@{unload}}
\index{unload@{unload}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{unload()}{unload()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::unload (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Unload node and children (perform G\+PU tasks, will be render thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ae88989b432172c3b8321390abd245dcf}\label{class_ogre_1_1_terrain_quad_tree_node_ae88989b432172c3b8321390abd245dcf}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!unload@{unload}}
\index{unload@{unload}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{unload()}{unload()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::unload (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{depth\+Start,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{depth\+End }\end{DoxyParamCaption})}



Unload node and children in a depth range (perform G\+PU tasks, will be render thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ad7ab8a8510a9a070486fcafd6d7acd02}\label{class_ogre_1_1_terrain_quad_tree_node_ad7ab8a8510a9a070486fcafd6d7acd02}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!unprepare@{unprepare}}
\index{unprepare@{unprepare}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{unprepare()}{unprepare()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::unprepare (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Unprepare node and children (perform C\+PU tasks, may be background thread) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ac99dc8a7163f38da4944bffc25a76df7}\label{class_ogre_1_1_terrain_quad_tree_node_ac99dc8a7163f38da4944bffc25a76df7}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!save@{save}}
\index{save@{save}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{save()}{save()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::save (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}} \&}]{stream }\end{DoxyParamCaption})}



Save node to a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a14c742793b0983c19e0993d25f6ed678}\label{class_ogre_1_1_terrain_quad_tree_node_a14c742793b0983c19e0993d25f6ed678}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getLodLevel@{getLodLevel}}
\index{getLodLevel@{getLodLevel}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getLodLevel()}{getLodLevel()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}}$\ast$ Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Lod\+Level (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{lod }\end{DoxyParamCaption})}



Get the \mbox{\hyperlink{struct_ogre_1_1_terrain_quad_tree_node_1_1_lod_level}{Lod\+Level}} information for a given lod. 


\begin{DoxyParams}{Parameters}
{\em lod} & The lod level index relative to this classes own list; if you want to use a global lod level, subtract \mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node_abfeaf6e5696bb7a4b410216c9bbe0ca0}{get\+Base\+Lod()}} first. Higher L\+OD levels are lower detail. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a15a0aedbb91a7304d1802456f66ab6e5}\label{class_ogre_1_1_terrain_quad_tree_node_a15a0aedbb91a7304d1802456f66ab6e5}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!preDeltaCalculation@{preDeltaCalculation}}
\index{preDeltaCalculation@{preDeltaCalculation}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{preDeltaCalculation()}{preDeltaCalculation()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::pre\+Delta\+Calculation (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Notify the node (and children) that deltas are going to be calculated for a given range. 

\begin{DoxyRemark}{Remarks}
Based on this call, we can know whether or not to reset the max height. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ad3f99f3c71c1bff1d323007020f813d5}\label{class_ogre_1_1_terrain_quad_tree_node_ad3f99f3c71c1bff1d323007020f813d5}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!notifyDelta@{notifyDelta}}
\index{notifyDelta@{notifyDelta}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{notifyDelta()}{notifyDelta()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::notify\+Delta (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{x,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{y,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{lod,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{delta }\end{DoxyParamCaption})}



Notify the node (and children) of a height delta value. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a27b042a63b10b1eab460404b69054cf6}\label{class_ogre_1_1_terrain_quad_tree_node_a27b042a63b10b1eab460404b69054cf6}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!postDeltaCalculation@{postDeltaCalculation}}
\index{postDeltaCalculation@{postDeltaCalculation}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{postDeltaCalculation()}{postDeltaCalculation()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::post\+Delta\+Calculation (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Notify the node (and children) that deltas have finished being calculated. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ac0400ce23ffa563bd4b310c946017b9a}\label{class_ogre_1_1_terrain_quad_tree_node_ac0400ce23ffa563bd4b310c946017b9a}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!finaliseDeltaValues@{finaliseDeltaValues}}
\index{finaliseDeltaValues@{finaliseDeltaValues}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{finaliseDeltaValues()}{finaliseDeltaValues()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::finalise\+Delta\+Values (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Promote the delta values calculated to the runtime ones (this must be called in the main thread). 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ac03be7a6beb8e94439c51cdce1c2985e}\label{class_ogre_1_1_terrain_quad_tree_node_ac03be7a6beb8e94439c51cdce1c2985e}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!assignVertexData@{assignVertexData}}
\index{assignVertexData@{assignVertexData}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{assignVertexData()}{assignVertexData()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::assign\+Vertex\+Data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{tree\+Depth\+Start,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{tree\+Depth\+End,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{resolution,  }\item[{\mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}}}]{sz }\end{DoxyParamCaption})}



Assign vertex data to the tree, from a depth and at a given resolution. 


\begin{DoxyParams}{Parameters}
{\em tree\+Depth\+Start} & The first depth of tree that should use this data, owns the data \\
\hline
{\em tree\+Depth\+End} & The end of the depth that should use this data (exclusive) \\
\hline
{\em resolution} & The resolution of the data to use (compared to full terrain) \\
\hline
{\em sz} & The size of the data along one edge \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a20aec2a5359be7a4621188e98c6fdd4e}\label{class_ogre_1_1_terrain_quad_tree_node_a20aec2a5359be7a4621188e98c6fdd4e}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!useAncestorVertexData@{useAncestorVertexData}}
\index{useAncestorVertexData@{useAncestorVertexData}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{useAncestorVertexData()}{useAncestorVertexData()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::use\+Ancestor\+Vertex\+Data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}} $\ast$}]{owner,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{tree\+Depth\+End,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{resolution }\end{DoxyParamCaption})}



Tell a node that it should use an anscestor\textquotesingle{}s vertex data. 


\begin{DoxyParams}{Parameters}
{\em tree\+Depth\+End} & The end of the depth that should use this data (exclusive) \\
\hline
{\em resolution} & The resolution of the data to use \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a7e0ca778e275f9fd825a97fcf223fe36}\label{class_ogre_1_1_terrain_quad_tree_node_a7e0ca778e275f9fd825a97fcf223fe36}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!updateVertexData@{updateVertexData}}
\index{updateVertexData@{updateVertexData}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{updateVertexData()}{updateVertexData()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::update\+Vertex\+Data (\begin{DoxyParamCaption}\item[{bool}]{positions,  }\item[{bool}]{deltas,  }\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect,  }\item[{bool}]{cpu\+Data }\end{DoxyParamCaption})}



Tell the node to update its vertex data for a given region. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a8700cbc04c5a88fc98fcb9801440ab01}\label{class_ogre_1_1_terrain_quad_tree_node_a8700cbc04c5a88fc98fcb9801440ab01}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!mergeIntoBounds@{mergeIntoBounds}}
\index{mergeIntoBounds@{mergeIntoBounds}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{mergeIntoBounds()}{mergeIntoBounds()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::merge\+Into\+Bounds (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&}]{pos }\end{DoxyParamCaption})}



Merge a point (relative to terrain node) into the local bounds, and that of children if applicable. 


\begin{DoxyParams}{Parameters}
{\em x,y} & The point on the terrain to which this position corresponds (affects which nodes update their bounds) \\
\hline
{\em pos} & The position relative to the terrain centre \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a9cce18f539fce6e45f71dfe533864eef}\label{class_ogre_1_1_terrain_quad_tree_node_a9cce18f539fce6e45f71dfe533864eef}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!resetBounds@{resetBounds}}
\index{resetBounds@{resetBounds}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{resetBounds()}{resetBounds()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::reset\+Bounds (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Reset the bounds of this node and all its children for the region given. 


\begin{DoxyParams}{Parameters}
{\em rect} & The region for which bounds should be reset, in top-\/level terrain coords \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_af27dbb3371e5c51772e304eef37afb3f}\label{class_ogre_1_1_terrain_quad_tree_node_af27dbb3371e5c51772e304eef37afb3f}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!rectIntersectsNode@{rectIntersectsNode}}
\index{rectIntersectsNode@{rectIntersectsNode}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{rectIntersectsNode()}{rectIntersectsNode()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::rect\+Intersects\+Node (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Returns true if the given rectangle overlaps the terrain area that this node references. 


\begin{DoxyParams}{Parameters}
{\em rect} & The region in top-\/level terrain coords \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ab89d0817244bb68ab25500eec8c360c2}\label{class_ogre_1_1_terrain_quad_tree_node_ab89d0817244bb68ab25500eec8c360c2}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!rectContainsNode@{rectContainsNode}}
\index{rectContainsNode@{rectContainsNode}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{rectContainsNode()}{rectContainsNode()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::rect\+Contains\+Node (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect}} \&}]{rect }\end{DoxyParamCaption})}



Returns true if the given rectangle completely contains the terrain area that this node references. 


\begin{DoxyParams}{Parameters}
{\em rect} & The region in top-\/level terrain coords \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a67493d0f5329e958ea9747e30b32fa55}\label{class_ogre_1_1_terrain_quad_tree_node_a67493d0f5329e958ea9747e30b32fa55}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!pointIntersectsNode@{pointIntersectsNode}}
\index{pointIntersectsNode@{pointIntersectsNode}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{pointIntersectsNode()}{pointIntersectsNode()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::point\+Intersects\+Node (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption})}



Returns true if the given point is in the terrain area that this node references. 


\begin{DoxyParams}{Parameters}
{\em x,y} & The point in top-\/level terrain coords \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a7e67547296a540fb127c76c6e2a3c935}\label{class_ogre_1_1_terrain_quad_tree_node_a7e67547296a540fb127c76c6e2a3c935}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getAABB@{getAABB}}
\index{getAABB@{getAABB}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getAABB()}{getAABB()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}}\& Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+A\+A\+BB (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the A\+A\+BB (local coords) of this node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_afb34be129bba773c740ed737f5632950}\label{class_ogre_1_1_terrain_quad_tree_node_afb34be129bba773c740ed737f5632950}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getBoundingRadius@{getBoundingRadius}}
\index{getBoundingRadius@{getBoundingRadius}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getBoundingRadius()}{getBoundingRadius()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Bounding\+Radius (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the bounding radius of this node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a646c0f6ec02e780cc6bcd29d80339bd9}\label{class_ogre_1_1_terrain_quad_tree_node_a646c0f6ec02e780cc6bcd29d80339bd9}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getLocalCentre@{getLocalCentre}}
\index{getLocalCentre@{getLocalCentre}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getLocalCentre()}{getLocalCentre()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}}\& Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Local\+Centre (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the local centre of this node, relative to parent terrain centre. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a8c7eb959dae089d763e027ef3e459abd}\label{class_ogre_1_1_terrain_quad_tree_node_a8c7eb959dae089d763e027ef3e459abd}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getMinHeight@{getMinHeight}}
\index{getMinHeight@{getMinHeight}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getMinHeight()}{getMinHeight()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Min\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the minimum height of the node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a1a2433c6e02f4434a43be08c6c1b9fc9}\label{class_ogre_1_1_terrain_quad_tree_node_a1a2433c6e02f4434a43be08c6c1b9fc9}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getMaxHeight@{getMaxHeight}}
\index{getMaxHeight@{getMaxHeight}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getMaxHeight()}{getMaxHeight()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Max\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the maximum height of the node. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a619cb859cf6a6501ab3c60bf2674cc1b}\label{class_ogre_1_1_terrain_quad_tree_node_a619cb859cf6a6501ab3c60bf2674cc1b}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!calculateCurrentLod@{calculateCurrentLod}}
\index{calculateCurrentLod@{calculateCurrentLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{calculateCurrentLod()}{calculateCurrentLod()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::calculate\+Current\+Lod (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$}]{cam,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{c\+Factor }\end{DoxyParamCaption})}



Calculate appropriate L\+OD for this node and children. 


\begin{DoxyParams}{Parameters}
{\em cam} & The camera to be used (this should already be the L\+OD camera) \\
\hline
{\em c\+Factor} & The c\+Factor which incorporates the viewport size, max pixel error and lod bias \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if this node or any of its children were selected for rendering 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a7302f88752914ed407eb1ce141b88a4f}\label{class_ogre_1_1_terrain_quad_tree_node_a7302f88752914ed407eb1ce141b88a4f}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getCurrentLod@{getCurrentLod}}
\index{getCurrentLod@{getCurrentLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getCurrentLod()}{getCurrentLod()}}
{\footnotesize\ttfamily int Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Current\+Lod (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the current L\+OD index (only valid after calculate\+Current\+Lod) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a38313e6b615d8df43e62ee721e576f22}\label{class_ogre_1_1_terrain_quad_tree_node_a38313e6b615d8df43e62ee721e576f22}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!isRenderedAtCurrentLod@{isRenderedAtCurrentLod}}
\index{isRenderedAtCurrentLod@{isRenderedAtCurrentLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{isRenderedAtCurrentLod()}{isRenderedAtCurrentLod()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::is\+Rendered\+At\+Current\+Lod (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns whether this node is rendering itself at the current L\+OD level. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a08466f3ed294f0ff9fc74feea3a9fff2}\label{class_ogre_1_1_terrain_quad_tree_node_a08466f3ed294f0ff9fc74feea3a9fff2}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!isSelfOrChildRenderedAtCurrentLod@{isSelfOrChildRenderedAtCurrentLod}}
\index{isSelfOrChildRenderedAtCurrentLod@{isSelfOrChildRenderedAtCurrentLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{isSelfOrChildRenderedAtCurrentLod()}{isSelfOrChildRenderedAtCurrentLod()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::is\+Self\+Or\+Child\+Rendered\+At\+Current\+Lod (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns whether this node or its children are being rendered at the current L\+OD level. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a61cddd999eed248ede1e7015b17040e0}\label{class_ogre_1_1_terrain_quad_tree_node_a61cddd999eed248ede1e7015b17040e0}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!setCurrentLod@{setCurrentLod}}
\index{setCurrentLod@{setCurrentLod}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{setCurrentLod()}{setCurrentLod()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::set\+Current\+Lod (\begin{DoxyParamCaption}\item[{int}]{lod }\end{DoxyParamCaption})}



Manually set the current L\+OD, intended for internal use only. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ae116a598286815a4702dc8159301d2e6}\label{class_ogre_1_1_terrain_quad_tree_node_ae116a598286815a4702dc8159301d2e6}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!getLodTransition@{getLodTransition}}
\index{getLodTransition@{getLodTransition}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{getLodTransition()}{getLodTransition()}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::get\+Lod\+Transition (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the transition state between the current L\+OD and the next lower one (only valid after calculate\+Current\+Lod) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_aef26e2fc5a8ce61b42111b85bd8bcbea}\label{class_ogre_1_1_terrain_quad_tree_node_aef26e2fc5a8ce61b42111b85bd8bcbea}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!setLodTransition@{setLodTransition}}
\index{setLodTransition@{setLodTransition}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{setLodTransition()}{setLodTransition()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::set\+Lod\+Transition (\begin{DoxyParamCaption}\item[{float}]{t }\end{DoxyParamCaption})}



Manually set the current L\+OD transition state, intended for internal use only. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a00f0af5c87629eadd07f6063284573f8}\label{class_ogre_1_1_terrain_quad_tree_node_a00f0af5c87629eadd07f6063284573f8}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!\_getRenderable@{\_getRenderable}}
\index{\_getRenderable@{\_getRenderable}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{\_getRenderable()}{\_getRenderable()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_renderable}{Renderable}}$\ast$ Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::\+\_\+get\+Renderable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the internal renderable object for this node. 



\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a580bc16a3fc18eb382fed53c6a31c365}\label{class_ogre_1_1_terrain_quad_tree_node_a580bc16a3fc18eb382fed53c6a31c365}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!Movable@{Movable}}
\index{Movable@{Movable}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{Movable}{Movable}}
{\footnotesize\ttfamily friend class Movable\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ad27630b21ec9f09d2b5f23dffd484aa7}\label{class_ogre_1_1_terrain_quad_tree_node_ad27630b21ec9f09d2b5f23dffd484aa7}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!Rend@{Rend}}
\index{Rend@{Rend}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{Rend}{Rend}}
{\footnotesize\ttfamily friend class Rend\hspace{0.3cm}{\ttfamily [friend]}}



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_ad2d323266710dcd2847eeb20af7ed734}\label{class_ogre_1_1_terrain_quad_tree_node_ad2d323266710dcd2847eeb20af7ed734}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!POSITION\_BUFFER@{POSITION\_BUFFER}}
\index{POSITION\_BUFFER@{POSITION\_BUFFER}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{POSITION\_BUFFER}{POSITION\_BUFFER}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::\+P\+O\+S\+I\+T\+I\+O\+N\+\_\+\+B\+U\+F\+F\+ER\hspace{0.3cm}{\ttfamily [static]}}



Buffer binding used for holding positions. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_quad_tree_node_a570b17be150e8de773197f801a6a2a2e}\label{class_ogre_1_1_terrain_quad_tree_node_a570b17be150e8de773197f801a6a2a2e}} 
\index{Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}!DELTA\_BUFFER@{DELTA\_BUFFER}}
\index{DELTA\_BUFFER@{DELTA\_BUFFER}!Ogre::TerrainQuadTreeNode@{Ogre::TerrainQuadTreeNode}}
\doxysubsubsection{\texorpdfstring{DELTA\_BUFFER}{DELTA\_BUFFER}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Terrain\+Quad\+Tree\+Node\+::\+D\+E\+L\+T\+A\+\_\+\+B\+U\+F\+F\+ER\hspace{0.3cm}{\ttfamily [static]}}



Buffer binding used for holding delta values. 



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_terrain_quad_tree_node_8h}{Ogre\+Terrain\+Quad\+Tree\+Node.\+h}}\end{DoxyCompactItemize}
