\hypertarget{class_ogre_1_1_terrain}{}\section{Ogre\+:\+:Terrain Class Reference}
\label{class_ogre_1_1_terrain}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}


The main containing class for a chunk of terrain.  




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



Inheritance diagram for Ogre\+:\+:Terrain\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_terrain__inherit__graph}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_terrain_1_1_default_gpu_buffer_allocator}{Default\+Gpu\+Buffer\+Allocator}
\begin{DoxyCompactList}\small\item\em Standard implementation of a buffer allocator which re-\/uses buffers. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator}
\begin{DoxyCompactList}\small\item\em Interface used to by the \hyperlink{class_ogre_1_1_terrain}{Terrain} instance to allocate G\+PU buffers. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Import\+Data}
\begin{DoxyCompactList}\small\item\em Structure encapsulating import data that you may use to bootstrap the terrain without loading from a native data stream. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance}
\begin{DoxyCompactList}\small\item\em An instance of a layer, with specific texture names. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} \{ \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91ac4699c4f99bea344a309d5544b33c140}{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z} = 0, 
\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91adfc96b5a388b3e48709d56b899098508}{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y} = 1, 
\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91add646ddae48fd0c7cc9c0a74458feb42}{A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z} = 2
 \}\begin{DoxyCompactList}\small\item\em The alignment of the terrain. \end{DoxyCompactList}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance} $>$ \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Layer\+Instance\+List}
\item 
enum \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} \{ \newline
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a88c6e2c93031bba254272861a1664cc3}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST} = 0, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aed82e8f7f45fcb5faeef6158c9d1ff3a}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST} = 1, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a07b3c537d34f5c7e1e3e79634dfcac1d}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH} = 2, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8795dff5bfc2240747ee0a843a900c71}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST} = 3, 
\newline
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a3a45b8d00d2ba435e61cdc99c94b0a91}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST} = 4, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aec43a04404ef9873e7d43c094e097e40}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST} = 5, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8c91ce1d5f82d7525102bc91fde0df2d}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH} = 6, 
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a4183a4a8b0f78832395fa0aa981f07bf}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST} = 7, 
\newline
\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a5ba448a51833e6c8eea28884a706834c}{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT} = 8
 \}\begin{DoxyCompactList}\small\item\em Neighbour index enumeration -\/ indexed anticlockwise from East like angles. \end{DoxyCompactList}
\item 
typedef std\+::vector$<$ \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} $>$ \hyperlink{class_ogre_1_1_terrain_a8e3b80784aa7c62ca578c2f8e2a01c7c}{Real\+Vector}
\item 
enum \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} \{ \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0a7049246e4a77e37dcea36fd35c4daf}{W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE} = 0, 
\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781ae3eabb53019f0d4ecfbff1d9a417d907}{L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE} = 1, 
\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0ad91edc61b2fb7ebe1966fc167ffe6d}{T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE} = 2, 
\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a748f0b5f2b54c63be96965de53931de6}{P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE} = 3
 \}\begin{DoxyCompactList}\small\item\em Enumeration of relative spaces that you might want to use to address the terrain. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_terrain_a9cc3d8901c73b6d2b6e1613a22636801}{Terrain} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$sm)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_terrain_ad3516cbdabc73135b79f1d34ffda7f01}{$\sim$\+Terrain} ()
\item 
void \hyperlink{class_ogre_1_1_terrain_aa40d40d6f3de43fa0651079673145b95}{\+\_\+dirty\+Composite\+Map\+Rect} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect)
\begin{DoxyCompactList}\small\item\em Mark a region of the terrain composite map as dirty. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a1ba82d7fe350ae72a2d748eb4e02b960}{\+\_\+dump\+Textures} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&prefix, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&suffix)
\begin{DoxyCompactList}\small\item\em Dump textures to files. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_af262cfa185a0d3659fb8fc5636d9b73c}{\+\_\+get\+Composite\+Map\+Material} () const
\begin{DoxyCompactList}\small\item\em Internal getting of material for the terrain composite map. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_a0db172baacac0e72c16253fdf7986ff2}{\+\_\+get\+Derived\+Resource\+Group} () const
\begin{DoxyCompactList}\small\item\em Get the final resource group to use when loading / saving. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a8d9657aa29e6e4c253f0a6e09d212789}{\+\_\+get\+Material} () const
\begin{DoxyCompactList}\small\item\em Internal getting of material. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a5c7d3147f12a6765dd39d7eb69587df7}{\+\_\+get\+Morph\+Required} () const
\begin{DoxyCompactList}\small\item\em Get whether L\+OD morphing is needed. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} $\ast$ \hyperlink{class_ogre_1_1_terrain_a074fb4e8695c695cd63675cdd65bd509}{\+\_\+get\+Root\+Scene\+Node} () const
\begin{DoxyCompactList}\small\item\em Get the root scene node for the terrain (internal use only) \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a3b379afd3348efd5c8e5a87f0b2d0729}{\+\_\+get\+Use\+Vertex\+Compression} () const
\begin{DoxyCompactList}\small\item\em Whether we\textquotesingle{}re using vertex compression or not. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a10b9f303b81585c1b51d0c273f03a5dd}{\+\_\+set\+Composite\+Map\+Required} (bool composite\+Map)
\begin{DoxyCompactList}\small\item\em Request internal implementation options for the terrain material to use, in this case a terrain-\/wide composite map. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a915121f91285f370bd1a01842991ae03}{\+\_\+set\+Light\+Map\+Required} (bool light\+Map, bool shadows\+Only=false)
\begin{DoxyCompactList}\small\item\em Request internal implementation options for the terrain material to use, in this case a terrain-\/wide normal map. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a2a65fb835fe22a425107ce43edf43219}{\+\_\+set\+Morph\+Required} (bool morph)
\begin{DoxyCompactList}\small\item\em Request internal implementation options for the terrain material to use, in this case vertex morphing information. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a3dba1853267506fed228c02ea8ecfe16}{\+\_\+set\+Normal\+Map\+Required} (bool normal\+Map)
\begin{DoxyCompactList}\small\item\em Request internal implementation options for the terrain material to use, in this case a terrain-\/wide normal map. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a70a42e6eb37cb024b4573fc912e219b4}{add\+Layer} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} world\+Size=0, const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$texture\+Names=0)
\begin{DoxyCompactList}\small\item\em Add a new layer to this terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a1b09422cf8baa9b8dddd45290de9a666}{add\+Layer} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} world\+Size=0, const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$texture\+Names=0)
\begin{DoxyCompactList}\small\item\em Add a new layer to this terrain at a specific index. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ad7934e16e9ad7a0a272bb86d46c17b9e}{add\+Query\+Flags} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} flags)
\begin{DoxyCompactList}\small\item\em As set\+Query\+Flags, except the flags passed as parameters are appended to the existing flags on this object. \end{DoxyCompactList}\item 
\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \hyperlink{class_ogre_1_1_terrain_a57b254a77b1c0fe87a34366ab08db4f3}{calculate\+Height\+Deltas} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect)
\begin{DoxyCompactList}\small\item\em Calculate (or recalculate) the delta values of heights between a vertex in its recorded position, and the place it will end up in the L\+OD in which it is removed. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$ \hyperlink{class_ogre_1_1_terrain_a65b20498fb2fb418f87bab3b29fbd409}{calculate\+Lightmap} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&extra\+Target\+Rect, \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&out\+Final\+Rect)
\begin{DoxyCompactList}\small\item\em Calculate (or recalculate) the terrain lightmap. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$ \hyperlink{class_ogre_1_1_terrain_adedd57624fe8d44f0b8bfaf00f5eb5bc}{calculate\+Normals} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&out\+Final\+Rect)
\begin{DoxyCompactList}\small\item\em Calculate (or recalculate) the normals on the terrain. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a22196f59f8f761e7fc4bea11db488252}{can\+Handle\+Request} (const \hyperlink{class_ogre_1_1_work_queue_1_1_request}{Work\+Queue\+::\+Request} $\ast$req, const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$srcQ)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_work_queue_1_1_request_handler}{Work\+Queue\+::\+Request\+Handler} override. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a3e3d8150704d279630a3a125b0439138}{can\+Handle\+Response} (const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$res, const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$srcQ)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_work_queue_1_1_response_handler}{Work\+Queue\+::\+Response\+Handler} override. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a6a94314390459778b11cb4785dbd41ca}{convert\+Direction} (\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} in\+Space, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Dir, \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} out\+Space, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&out\+Dir) const
\begin{DoxyCompactList}\small\item\em Convert a direction from one space to another with respect to this terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_vector3}{Vector3} \hyperlink{class_ogre_1_1_terrain_a33bb06af72903323c8b8daa67c17abd7}{convert\+Direction} (\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} in\+Space, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Dir, \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} out\+Space) const
\begin{DoxyCompactList}\small\item\em Convert a direction from one space to another with respect to this terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a6ad6246dddf231e761c52af18397369f}{convert\+Position} (\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} in\+Space, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Pos, \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} out\+Space, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&out\+Pos) const
\begin{DoxyCompactList}\small\item\em Convert a position from one space to another with respect to this terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_vector3}{Vector3} \hyperlink{class_ogre_1_1_terrain_a09f6174d11a0339d9ff44775d48dee09}{convert\+Position} (\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} in\+Space, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Pos, \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space} out\+Space) const
\begin{DoxyCompactList}\small\item\em Convert a position from one space to another with respect to this terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ac11979818981d2a7c09c1982479932b0}{decrease\+Lod\+Level} ()
\begin{DoxyCompactList}\small\item\em Removes highest L\+OD level loaded. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aab69f3dead87b53b84784c7d7d325f68}{dirty} ()
\begin{DoxyCompactList}\small\item\em Mark the entire terrain as dirty. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a9e432dfa8261600759fb020c09c169a1}{dirty\+Lightmap} ()
\begin{DoxyCompactList}\small\item\em Mark a the entire lightmap as dirty. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a0852e0efabe0cbaf49277dbb261a5490}{dirty\+Lightmap\+Rect} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect)
\begin{DoxyCompactList}\small\item\em Mark a region of the lightmap as dirty. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a0a9de436fad8d6f3a95b1b78314fb736}{dirty\+Rect} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect)
\begin{DoxyCompactList}\small\item\em Mark a region of the terrain as dirty. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a1da607007f9aa988b80df8d3036e187e}{finalise\+Height\+Deltas} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, bool cpu\+Data)
\begin{DoxyCompactList}\small\item\em Finalise the height deltas. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a36a0e738c270ab2d804446f3e93ae651}{finalise\+Lightmap} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$lightmap\+Box)
\begin{DoxyCompactList}\small\item\em Finalise the lightmap. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a19862c05e3b50f4464a41e48c12c5245}{finalise\+Normals} (const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$normals\+Box)
\begin{DoxyCompactList}\small\item\em Finalise the normals. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a4ee732f95cf2b3c4aacb709db48fad1e}{free\+Temporary\+Resources} ()
\begin{DoxyCompactList}\small\item\em Free as many resources as possible for optimal run-\/time memory use. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \& \hyperlink{class_ogre_1_1_terrain_a8cf9f00dcd292d3cba4662006d520a8b}{get\+A\+A\+BB} () const
\begin{DoxyCompactList}\small\item\em Get the A\+A\+BB (local coords) of the entire terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} \hyperlink{class_ogre_1_1_terrain_a7b0821197e537ceeff981835c0c127e2}{get\+Alignment} () const
\begin{DoxyCompactList}\small\item\em Get the alignment of the terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a9167eb4f73df66b86bc63a9aea34bb88}{get\+Blend\+Texture\+Count} () const
\begin{DoxyCompactList}\small\item\em Get the number of blend textures in use. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a2e76a05d836ae1924b44beb5686bf6f4}{get\+Blend\+Texture\+Count} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} num\+Layers) const
\begin{DoxyCompactList}\small\item\em Get the number of blend textures needed for a given number of layers. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_abea533df30a7cec072f08f527978c095}{get\+Blend\+Texture\+Index} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} layer\+Index) const
\begin{DoxyCompactList}\small\item\em Get the index of the blend texture that a given layer uses. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_a36e0c227906b303200f67a8ca5822ba9}{get\+Blend\+Texture\+Name} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} texture\+Index) const
\begin{DoxyCompactList}\small\item\em Get the name of the packed blend texture at a specific index. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_aa250d15148f1cbf87777ff36a628da9e}{get\+Bounding\+Radius} () const
\begin{DoxyCompactList}\small\item\em Get the bounding radius of the entire terrain. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a63e79bde330711e62f5d1e89691ffc3f}{get\+Composite\+Map} () const
\begin{DoxyCompactList}\small\item\em Get access to the composite map, if enabled (as requested by the material generator) \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_afed96292664c90c9e2707b934576fa74}{get\+Composite\+Map\+Material} () const
\begin{DoxyCompactList}\small\item\em Get the material being used for the terrain composite map. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a3740cb23e839b4a98e60c18b559d1309}{get\+Composite\+Map\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the requested size of composite map for this terrain. \end{DoxyCompactList}\item 
const float $\ast$ \hyperlink{class_ogre_1_1_terrain_a138c70e096ebcbf02c29b80eb11f1806}{get\+Delta\+Data} () const
\begin{DoxyCompactList}\small\item\em Get a pointer to all the delta data for this terrain. \end{DoxyCompactList}\item 
const float $\ast$ \hyperlink{class_ogre_1_1_terrain_a75f457ff6165e331910f554c224bdcd7}{get\+Delta\+Data} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Get a pointer to the delta data for a given point. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a2e0f304bd4dc2a25742a4ca1a35641d4}{get\+Global\+Colour\+Map} () const
\begin{DoxyCompactList}\small\item\em Get access to the global colour map, if enabled. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_aa55c99add54accbfe6542f53b1a34c12}{get\+Global\+Colour\+Map\+Enabled} () const
\begin{DoxyCompactList}\small\item\em Get whether a global colour map is enabled on this terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_acd720425368a1c9e9152c01da3e3c3cd}{get\+Global\+Colour\+Map\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the size of the global colour map (if used) \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator} $\ast$ \hyperlink{class_ogre_1_1_terrain_ac384555375690ef86b39c7db91ebe7ca}{get\+Gpu\+Buffer\+Allocator} ()
\begin{DoxyCompactList}\small\item\em Get the current buffer allocator. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_terrain_a8155c2ed894483ab36fa0e22ab8f33cd}{get\+Height\+At\+Point} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Get the height data for a given terrain point. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_terrain_ae50846c3688082ececfe0d56ed78c792}{get\+Height\+At\+Terrain\+Position} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y) const
\begin{DoxyCompactList}\small\item\em Get the height data for a given terrain position. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_terrain_a7719018dcfb417865f00ddeef7b0951b}{get\+Height\+At\+World\+Position} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z) const
\begin{DoxyCompactList}\small\item\em Get the height data for a given world position (projecting the point down on to the terrain). \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_terrain_ad365d761359884e56a7c0164086a57d9}{get\+Height\+At\+World\+Position} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&pos) const
\item 
float $\ast$ \hyperlink{class_ogre_1_1_terrain_a8e9cebcb6e0a3dd2c9171e3ab91473eb}{get\+Height\+Data} () const
\begin{DoxyCompactList}\small\item\em Get a pointer to all the height data for this terrain. \end{DoxyCompactList}\item 
float $\ast$ \hyperlink{class_ogre_1_1_terrain_a82526bd44821c3ceec9eaead8153c8fe}{get\+Height\+Data} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Get a pointer to the height data for a given point. \end{DoxyCompactList}\item 
int \hyperlink{class_ogre_1_1_terrain_a8c4feba3c0ec197a375173e90423e978}{get\+Highest\+Lod\+Loaded} () const
\item 
int \hyperlink{class_ogre_1_1_terrain_afcf5e4be38a9734b95e2a1578630b17d}{get\+Highest\+Lod\+Prepared} () const
\item 
\hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Terrain\+Layer\+Blend\+Map} $\ast$ \hyperlink{class_ogre_1_1_terrain_a68d05f4414e020b6eed2c4f90888b6fd}{get\+Layer\+Blend\+Map} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} layer\+Index)
\begin{DoxyCompactList}\small\item\em Retrieve the layer blending map for a given layer, which may be used to edit the blending information for that layer. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a148549dc9a5d14725b5c44256638e8ad}{get\+Layer\+Blend\+Map\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the requested size of the blend maps used to blend between layers for this terrain. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a605043a30befb62e5fad16df455a2b6e}{get\+Layer\+Blend\+Texture} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index) const
\begin{DoxyCompactList}\small\item\em Get a blend texture with a given index. \end{DoxyCompactList}\item 
std\+::pair$<$ \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}, \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} $>$ \hyperlink{class_ogre_1_1_terrain_a6e4ca16459f48c1b25a327250898aed5}{get\+Layer\+Blend\+Texture\+Index} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} layer\+Index) const
\begin{DoxyCompactList}\small\item\em Get the texture index and colour channel of the blend information for a given layer. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a1b6d6be6683260c79d51cb5d9a8ca6be}{get\+Layer\+Count} () const
\begin{DoxyCompactList}\small\item\em Get the number of layers in this terrain. \end{DoxyCompactList}\item 
const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \& \hyperlink{class_ogre_1_1_terrain_a6ca23f03f11b337903ed42c274b41423}{get\+Layer\+Declaration} () const
\begin{DoxyCompactList}\small\item\em Get the declaration which describes the layers in this terrain. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_a46c0ebb19fd5feeda541f1c3e7995557}{get\+Layer\+Texture\+Name} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} layer\+Index, \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} sampler\+Index) const
\begin{DoxyCompactList}\small\item\em Get the name of the texture bound to a given index within a given layer. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_ac38fc212b7a4d6a21843518c237cc44d}{get\+Layer\+U\+V\+Multiplier} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index) const
\begin{DoxyCompactList}\small\item\em Get the layer UV multiplier. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_a30d2fed380ea0b55b182cccf77670108}{get\+Layer\+World\+Size} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index) const
\begin{DoxyCompactList}\small\item\em How large an area in world space the texture in a terrain layer covers before repeating. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a84afe6275d74e7fbba6d853248d0294f}{get\+Lightmap} () const
\begin{DoxyCompactList}\small\item\em Get access to the lightmap, if enabled (as requested by the material generator) \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_ae0168de61d9cc2f640d081538ad4ded9}{get\+Lightmap\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the requested size of lightmap for this terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_aca2087cd57d5c80ccf2e983acddb1887}{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Utility method, get the first L\+OD Level at which this vertex is no longer included. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a2f98ad8c78b6046d4d4f4dcf9d367fae}{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated} (long row\+Or\+Colulmn) const
\begin{DoxyCompactList}\small\item\em Utility method, get the first L\+OD Level at which this vertex is no longer included. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_terrain_a4bf919d04eb3b08187b91808ee22363f}{get\+Material} () const
\begin{DoxyCompactList}\small\item\em Get the material being used for the terrain. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_a64e566b23cac679f6eb18f5cdd37b23b}{get\+Material\+Name} () const
\begin{DoxyCompactList}\small\item\em Get the name of the material being used for the terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a33059cbc4162471869976806c34038e6}{get\+Max\+Batch\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the maximum size in vertices along one side of a batch. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_a8dc48d60a3f7e6a152b6757baf32c513}{get\+Max\+Height} () const
\begin{DoxyCompactList}\small\item\em Get the maximum height of the terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a891a8c6a16efd6ecf16508e21cade01e}{get\+Max\+Layers} () const
\begin{DoxyCompactList}\small\item\em Get the maximum number of layers supported with the current options. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_afdd76575197788ad0da8d138ab289254}{get\+Min\+Batch\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the minimum size in vertices along one side of a batch. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_a2511163a9389cff84b1dfecdd863b381}{get\+Min\+Height} () const
\begin{DoxyCompactList}\small\item\em Get the minimum height of the terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$ \hyperlink{class_ogre_1_1_terrain_a80e114d5ece4c400eff6dbe9bb00af70}{get\+Neighbour} (\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} index) const
\begin{DoxyCompactList}\small\item\em Retrieve the terrain\textquotesingle{}s neighbour, or null if not present. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a2edb50f75fb20e41b169c86cbffceadc}{get\+Num\+Lod\+Levels} () const
\begin{DoxyCompactList}\small\item\em Get the total number of L\+OD levels in the terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_aeb53dbed1ad2cb6cb22cefefa8039c68}{get\+Num\+Lod\+Levels\+Per\+Leaf} () const
\begin{DoxyCompactList}\small\item\em Get the number of L\+OD levels in a leaf of the terrain quadtree. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a7da93ef534c25a0724626b942cb07980}{get\+Point} (long x, long y, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$outpos) const
\begin{DoxyCompactList}\small\item\em Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, aligned as per options. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a4a17ec359bcfa2f4643500125a2643af}{get\+Point} (long x, long y, float height, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$outpos) const
\begin{DoxyCompactList}\small\item\em Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, supplying the height data manually (can be more optimal). \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a960a5d393908108b8257399d647fa3a5}{get\+Point\+From\+Self\+Or\+Neighbour} (long x, long y, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$outpos) const
\begin{DoxyCompactList}\small\item\em Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, aligned as per options. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_acde0829d11ee2cd77bb4affa9209cb79}{get\+Point\+Transform} (\hyperlink{class_ogre_1_1_matrix4}{Matrix4} $\ast$out\+Xform) const
\begin{DoxyCompactList}\small\item\em Get a transform which converts Vector4(xindex, yindex, height, 1) into an object-\/space position including scalings and alignment. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}{get\+Position} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&T\+Spos, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+W\+Spos) const
\begin{DoxyCompactList}\small\item\em Convert a position from terrain basis space to world space. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a4f12c4926b592f118508ee06b84eb220}{get\+Position} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+W\+Spos) const
\item 
const \hyperlink{class_ogre_1_1_vector3}{Vector3} \& \hyperlink{class_ogre_1_1_terrain_a80cab6f78d3d9463f2d41ef1967ee713}{get\+Position} () const
\begin{DoxyCompactList}\small\item\em Get the world position of the terrain centre. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_af6b0f1642a0f159d6000594ccf006736}{get\+Position\+Align} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&T\+Spos, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+W\+Spos) const
\begin{DoxyCompactList}\small\item\em Convert a position from terrain basis space to world space based on a specified alignment. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a6f04aa8304bb033f4d33b64e08f05410}{get\+Position\+Align} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+W\+Spos) const
\item 
\hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node} $\ast$ \hyperlink{class_ogre_1_1_terrain_a5415ad85a6bf652029c01169105a068d}{get\+Quad\+Tree} ()
\begin{DoxyCompactList}\small\item\em Get the top level of the quad tree which is used to divide up the terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_abbfdc91237fe8c41297f4715e96b1a19}{get\+Query\+Flags} (void) const
\begin{DoxyCompactList}\small\item\em Get the query flags for this terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a85c8ed1f55d5cf5300e2ccc2d02ab2f5}{get\+Render\+Queue\+Group} (void) const
\begin{DoxyCompactList}\small\item\em Get the render queue group that this terrain will be rendered into. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_afe71e5b01aa9db756587fadb27eb2a83}{get\+Resolution\+At\+Lod} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} lod\+Level) const
\begin{DoxyCompactList}\small\item\em Gets the resolution of the entire terrain (down one edge) at a given L\+OD level. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_ab70c3378a72f1b865359357910fba55f}{get\+Resource\+Group} () const
\begin{DoxyCompactList}\small\item\em Get the resource group to use when loading / saving. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$ \hyperlink{class_ogre_1_1_terrain_a2be9933d1206c531dc84a48f0ccbb833}{get\+Scene\+Manager} () const
\item 
\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_aa23d586fa8023d7992107388bec2d0bd}{get\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the size of the terrain in vertices along one side. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_a607e4aebdee75f7d26c279607d819976}{get\+Skirt\+Size} () const
\begin{DoxyCompactList}\small\item\em The default size of \textquotesingle{}skirts\textquotesingle{} used to hide terrain cracks (default 10, set for new \hyperlink{class_ogre_1_1_terrain}{Terrain} using \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options}) \end{DoxyCompactList}\item 
int \hyperlink{class_ogre_1_1_terrain_a768bccd8d43b0b1f5ff5eaa513be60f3}{get\+Target\+Lod\+Level} () const
\item 
\hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \hyperlink{class_ogre_1_1_terrain_aadd272b751be4c855ef9233b7e4cd9ce}{get\+Terrain\+Normal\+Map} () const
\begin{DoxyCompactList}\small\item\em Get the (global) normal map texture. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aac94de7f1d8908a2adc0432b05804a00}{get\+Terrain\+Position} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&W\+Spos, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+T\+Spos) const
\begin{DoxyCompactList}\small\item\em Convert a position from world space to terrain basis space. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a7db38251c418f66b2615037babfe781d}{get\+Terrain\+Position} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+T\+Spos) const
\item 
void \hyperlink{class_ogre_1_1_terrain_a3fb22ca5067bb7f2b5b6d29f6e64a2b0}{get\+Terrain\+Position\+Align} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&W\+Spos, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+T\+Spos) const
\begin{DoxyCompactList}\small\item\em Convert a position from world space to terrain basis space based on a specified alignment. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a1b38900f2914d915b54dc3ce1d37eb40}{get\+Terrain\+Position\+Align} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+T\+Spos) const
\item 
void \hyperlink{class_ogre_1_1_terrain_a61849058085ae7cb6c0e16bb5c21cb03}{get\+Terrain\+Vector} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Vec, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\begin{DoxyCompactList}\small\item\em Translate a vector from world space to local terrain space based on the alignment options. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_abb4ffa0b942aca1273cc6af52c2f2b81}{get\+Terrain\+Vector} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\item 
void \hyperlink{class_ogre_1_1_terrain_aad404a040c30d1138b406cff801e1b56}{get\+Terrain\+Vector\+Align} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Vec, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\begin{DoxyCompactList}\small\item\em Translate a vector from world space to local terrain space based on a specified alignment. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_af37504438f3cca3341419bbf43b28331}{get\+Terrain\+Vector\+Align} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\item 
void \hyperlink{class_ogre_1_1_terrain_a9831992c806d7b12114acdf35fc40aff}{get\+Vector} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Vec, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\begin{DoxyCompactList}\small\item\em Translate a vector into world space based on the alignment options. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_af8cafe25232ec796bdb2ae229de6d590}{get\+Vector} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\item 
void \hyperlink{class_ogre_1_1_terrain_a00dd54e0cf38fac3e729bf481761a672}{get\+Vector\+Align} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&in\+Vec, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\begin{DoxyCompactList}\small\item\em Translate a vector into world space based on a specified alignment. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a539d01d15e180e7c67727884badd5b7d}{get\+Vector\+Align} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$out\+Vec) const
\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_a124354ea9deb52eced5e1d5a75a2b996}{get\+Visibility\+Flags} (void) const
\begin{DoxyCompactList}\small\item\em Get the visibility flags for this terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \hyperlink{class_ogre_1_1_terrain_ad0f38e00e35fe85b04ed010a27433341}{get\+World\+A\+A\+BB} () const
\begin{DoxyCompactList}\small\item\em Get the A\+A\+BB (world coords) of the entire terrain. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_abf52cde19183386c011d27a3e190cd7a}{get\+World\+Size} () const
\begin{DoxyCompactList}\small\item\em Get the size of the terrain in world units. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a584b511e44e1c33c387987187446353a}{handle\+Generate\+Material\+Response} (const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$res, const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$srcQ)
\begin{DoxyCompactList}\small\item\em Handler for Generate\+Material. \end{DoxyCompactList}\item 
\hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$ \hyperlink{class_ogre_1_1_terrain_a00a3600acc9fb758f8890f2c0877f62e}{handle\+Request} (const \hyperlink{class_ogre_1_1_work_queue_1_1_request}{Work\+Queue\+::\+Request} $\ast$req, const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$srcQ)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_work_queue_1_1_request_handler}{Work\+Queue\+::\+Request\+Handler} override. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ad963dbee0f58e887e05c982385fb9799}{handle\+Response} (const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$res, const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$srcQ)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_work_queue_1_1_response_handler}{Work\+Queue\+::\+Response\+Handler} override. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a6ca2d94a3062b2ae63620ff2b1121b25}{increase\+Lod\+Level} (bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Increase \hyperlink{class_ogre_1_1_terrain}{Terrain}\textquotesingle{}s L\+OD level by 1. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a518a4dcf0c880eeadc3d0ae6ff4aa5b1}{is\+Derived\+Data\+Update\+In\+Progress} () const
\begin{DoxyCompactList}\small\item\em Query whether a derived data update is in progress or not. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a0f29e0c116626bcb1bdb45835e0752cc}{is\+Height\+Data\+Modified} () const
\begin{DoxyCompactList}\small\item\em Returns whether terrain heights have been modified since the terrain was first loaded / defined. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_af0c198af3449240a57dc63380e38a9fe}{is\+Loaded} () const
\begin{DoxyCompactList}\small\item\em Return whether the terrain is loaded. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_ac09cc65643825f293320058bc6ed07ab}{is\+Modified} () const
\begin{DoxyCompactList}\small\item\em Returns whether this terrain has been modified since it was first loaded / defined. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ae7381fe2e7ea64304f59e7f10b6c90ec}{load} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Prepare and load the terrain in one simple call from a standalone file. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ae3fc60c0f8350b4872323ddf258d922d}{load} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&stream)
\begin{DoxyCompactList}\small\item\em Prepare and load the terrain in one simple call from a stream. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a78949cbc0a2a6d717b4606043b46d5c7}{load} (int lod\+Level=0, bool synchronous=true)
\begin{DoxyCompactList}\small\item\em Load the terrain based on the data already populated via prepare methods. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a5baccf626f31854f341910aa4c7c0500}{neighbour\+Modified} (\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} index, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&edgerect, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&shadowrect)
\begin{DoxyCompactList}\small\item\em Notify that a neighbour has just finished updating and that this change affects this tile. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a9a1c32a11911a0ccea0eda01c86484a9}{notify\+Neighbours} ()
\begin{DoxyCompactList}\small\item\em Tell this instance to notify all neighbours that will be affected by a height change that has taken place. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_a998e0575ce4f0385512363c1c8019047}{O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX} (m\+Neighbour\+Mutex)
\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_ab57b560ea987d8dae9901908d0ab6f28}{post\+Find\+Visible\+Objects} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$source, Illumination\+Render\+Stage irs, \hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$v)
\begin{DoxyCompactList}\small\item\em Called after searching for visible objects in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_ad8f0c1e1efaccade0663e416d76b960c}{post\+Update\+Scene\+Graph} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$source, \hyperlink{class_ogre_1_1_camera}{Camera} $\ast$camera)
\begin{DoxyCompactList}\small\item\em Called after updating the scene graph in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ad9bd9a0fbdb32cb5571cca586f21e811}{pre\+Find\+Visible\+Objects} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$source, \hyperlink{class_ogre_1_1_scene_manager_a51db39cc4fa15b28086a1793d42fc827}{Scene\+Manager\+::\+Illumination\+Render\+Stage} irs, \hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$v)
\begin{DoxyCompactList}\small\item\em Overridden from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener}{Scene\+Manager\+::\+Listener}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{prepare} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Prepare the terrain from a standalone file. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a2f08575d471649617945b200154478c5}{prepare} (\hyperlink{namespace_ogre_a8a2a961b4205aacff9c01e81e08d7781}{Data\+Stream\+Ptr} \&stream)
\begin{DoxyCompactList}\small\item\em Prepare terrain data from saved data. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a20d7b036e25805405d3140b3751ec4b6}{prepare} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&stream)
\begin{DoxyCompactList}\small\item\em Prepare terrain data from saved data. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_a2b61cedddcd4ebe3b6c27068e2624d74}{prepare} (const \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Import\+Data} \&import\+Data)
\begin{DoxyCompactList}\small\item\em Prepare the terrain from some import data rather than loading from native data. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_aaafbc877eaf190b86163c1e171a4400e}{pre\+Update\+Scene\+Graph} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$source, \hyperlink{class_ogre_1_1_camera}{Camera} $\ast$camera)
\begin{DoxyCompactList}\small\item\em Called prior to updating the scene graph in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. \end{DoxyCompactList}\item 
std\+::pair$<$ bool, \hyperlink{class_ogre_1_1_vector3}{Vector3} $>$ \hyperlink{class_ogre_1_1_terrain_a003259cd78387d45163f03ccace647bb}{ray\+Intersects} (const \hyperlink{class_ogre_1_1_ray}{Ray} \&ray, bool cascade\+To\+Neighbours=false, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} distance\+Limit=0)
\begin{DoxyCompactList}\small\item\em Test for intersection of a given ray with the terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$ \hyperlink{class_ogre_1_1_terrain_adfae6aa2b309d833700cc5f783a6c23f}{ray\+Select\+Neighbour} (const \hyperlink{class_ogre_1_1_ray}{Ray} \&ray, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} distance\+Limit=0)
\begin{DoxyCompactList}\small\item\em Utility method to pick a neighbour based on a ray. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ae0b3ec5f09b44fdc3b83f0535c2d1a27}{remove\+Layer} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index)
\begin{DoxyCompactList}\small\item\em Remove a layer from the terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aa0e26a4fd6e9897509bf7372388427ff}{remove\+Query\+Flags} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} flags)
\item 
void \hyperlink{class_ogre_1_1_terrain_ae052005afc7eb71b24aef24fc22dd7e0}{replace\+Layer} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index, bool keep\+Blends, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} world\+Size=0, const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$texture\+Names=0)
\begin{DoxyCompactList}\small\item\em Replace an existing terrain layer, optionally preserving all other layer blend maps. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}{save} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Save terrain data in native form to a standalone file. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_afce38d08848608e3bf4642678e289181}{save} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&stream)
\begin{DoxyCompactList}\small\item\em Save terrain data in native form to a serializing stream. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a09baa91af04f211ee9e8e8f60d9e6c39}{scene\+Manager\+Destroyed} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$source)
\begin{DoxyCompactList}\small\item\em Overridden from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener}{Scene\+Manager\+::\+Listener}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ac2b0283f89f542552c2e40e07899f95d}{set\+Global\+Colour\+Map\+Enabled} (bool enabled, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} size=0)
\begin{DoxyCompactList}\small\item\em Set whether a global colour map is enabled. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_afd269cb7c490b88d1aea4fccb4ac2451}{set\+Gpu\+Buffer\+Allocator} (\hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator} $\ast$alloc)
\begin{DoxyCompactList}\small\item\em Tell this instance to use the given \hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ad6f2c33d6fc3f6152a7b6fd0069a7864}{set\+Height\+At\+Point} (long x, long y, float h)
\begin{DoxyCompactList}\small\item\em Set the height data for a given terrain point. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_af1dc74d66c4f3867a484d09cf2063fbc}{set\+Layer\+Texture\+Name} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} layer\+Index, \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} sampler\+Index, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&texture\+Name)
\begin{DoxyCompactList}\small\item\em Set the name of the texture bound to a given index within a given layer. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a4447c7ef2269781192e5b637035b08fc}{set\+Layer\+World\+Size} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} index, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} size)
\begin{DoxyCompactList}\small\item\em How large an area in world space the texture in a terrain layer covers before repeating. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aa0d9b7d033bd0b3c29c13e6151c93bd0}{set\+Neighbour} (\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} index, \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$neighbour, bool recalculate=false, bool notify\+Other=true)
\begin{DoxyCompactList}\small\item\em Set a terrain\textquotesingle{}s neighbour, or null to detach one. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aa87ddbb08f493d0901594fe6e3f4cafe}{set\+Position} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&pos)
\begin{DoxyCompactList}\small\item\em Set the position of the terrain centre in world coordinates. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a4b05d2eef470c736f23b6e3dbb5619d9}{set\+Query\+Flags} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} flags)
\begin{DoxyCompactList}\small\item\em Set the query flags for this terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a9ff521bcc0fb0193d9105af627af5c0d}{set\+Render\+Queue\+Group} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} grp)
\begin{DoxyCompactList}\small\item\em Set the render queue group that this terrain will be rendered into. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aacd2dcc94afbc3e8fbca6d6de1baedab}{set\+Resource\+Group} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&res\+Group)
\begin{DoxyCompactList}\small\item\em Set the resource group to use when loading / saving. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a94a15b828bc003a3bc6a019c9fbbd2ff}{set\+Size} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} new\+Size)
\begin{DoxyCompactList}\small\item\em Set the size of terrain in vertices along one side. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a03a3ea2ce4dba4e2948a6b9d1fc02566}{set\+Visibility\+Flags} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} flags)
\begin{DoxyCompactList}\small\item\em Set the visibility flags for this terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ad807304e85ba44ddb02aa7cbd639ef4b}{set\+World\+Size} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} new\+World\+Size)
\begin{DoxyCompactList}\small\item\em Set the world size of terrain. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_a012a1c3dcf2efbd8245fd125e7fc1b64}{shadow\+Texture\+Caster\+Pre\+View\+Proj} (\hyperlink{class_ogre_1_1_light}{Light} $\ast$light, \hyperlink{class_ogre_1_1_camera}{Camera} $\ast$camera, size\+\_\+t iteration)
\begin{DoxyCompactList}\small\item\em This event occurs just before the view \& projection matrices are set for rendering into a shadow texture. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_aa05def0ab89195c585b5467059245641}{shadow\+Texture\+Receiver\+Pre\+View\+Proj} (\hyperlink{class_ogre_1_1_light}{Light} $\ast$light, \hyperlink{class_ogre_1_1_frustum}{Frustum} $\ast$frustum)
\begin{DoxyCompactList}\small\item\em This event occurs just before the view \& projection matrices are set for re-\/rendering a shadow receiver. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_aa2c3ceb367f47c3721e9d1843288d341}{shadow\+Textures\+Updated} (size\+\_\+t number\+Of\+Shadow\+Textures)
\begin{DoxyCompactList}\small\item\em Event raised after all shadow textures have been rendered into for all queues / targets but before any other geometry has been rendered (including main scene geometry and any additional shadow receiver passes). \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_a5ef1be858fe331867653fbb8aa819494}{sort\+Lights\+Affecting\+Frustum} (\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List} \&light\+List)
\begin{DoxyCompactList}\small\item\em Hook to allow the listener to override the ordering of lights for the entire frustum. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_acee00b1d1d1d46633cd88b3b49f488cf}{unload} ()
\begin{DoxyCompactList}\small\item\em Unload the terrain and free G\+PU resources. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aa67c987848bb325bc3aef2b0ad7a9adf}{unprepare} ()
\begin{DoxyCompactList}\small\item\em Free C\+PU resources created during prepare methods. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update} (bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Trigger the update process for the terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a84b12bda4d87a9145c5b131166275fd3}{update\+Composite\+Map} ()
\begin{DoxyCompactList}\small\item\em Performs an update on the terrain composite map based on its dirty region. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a5d4659018c697f0a2fae1192f81ede4a}{update\+Composite\+Map\+With\+Delay} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} delay=2)
\begin{DoxyCompactList}\small\item\em Performs an update on the terrain composite map based on its dirty region, but only at a maximum frequency. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data} (bool synchronous=false, \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} type\+Mask=0x\+F\+F)
\begin{DoxyCompactList}\small\item\em Updates derived data for the terrain (L\+OD, lighting) to reflect changed height data, in a separate thread if threading is enabled (O\+G\+R\+E\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+S\+U\+P\+P\+O\+RT). \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{update\+Geometry} ()
\begin{DoxyCompactList}\small\item\em Performs an update on the terrain geometry based on the dirty region. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a6c319d29b618e68b9a8d6dd3b0652dcb}{update\+Geometry\+Without\+Notify\+Neighbours} ()
\begin{DoxyCompactList}\small\item\em Performs an update on the terrain geometry based on the dirty region. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_aff2c1091b6355257deabcae1755adec9}{widen\+Rect\+By\+Vector} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&vec, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&in\+Rect, \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&out\+Rect)
\begin{DoxyCompactList}\small\item\em Widen a rectangular area of terrain to take into account an extrusion vector. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_a19739da0efce18871375737421846f1c}{widen\+Rect\+By\+Vector} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&vec, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&in\+Rect, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} min\+Height, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} max\+Height, \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&out\+Rect)
\begin{DoxyCompactList}\small\item\em Widen a rectangular area of terrain to take into account an extrusion vector, but specify the min / max heights to extrude manually. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a2ba2f7a6eb2c9356d6bddaf30fe72257}{\+\_\+calc\+Skirt\+Vertex\+Index} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} main\+Index, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} vdatasize, bool is\+Col, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} num\+Skirt\+Rows\+Cols, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} skirt\+Row\+Col\+Skip)
\begin{DoxyCompactList}\small\item\em Utility method to calculate the skirt index for a given original vertex index. \end{DoxyCompactList}\item 
static size\+\_\+t \hyperlink{class_ogre_1_1_terrain_a72c79185cbbc50e1ff016946ae14dca2}{\+\_\+get\+Num\+Indexes\+For\+Batch\+Size} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} batch\+Size)
\begin{DoxyCompactList}\small\item\em Utility method to get the number of indexes required to render a given batch. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_terrain_af01e8cc2a2055e30420f626269f3f38d}{\+\_\+populate\+Index\+Buffer} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} $\ast$p\+Indexes, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} batch\+Size, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} vdatasize, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} vertex\+Increment, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} xoffset, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} yoffset, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} num\+Skirt\+Rows\+Cols, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} skirt\+Row\+Col\+Skip)
\begin{DoxyCompactList}\small\item\em Utility method to populate a (locked) index buffer. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_terrain_afb9983e073970fa2fa47ede55a7f16f6}{convert\+Terrain\+To\+World\+Axes} (\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&terrain\+Vec, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$world\+Vec)
\begin{DoxyCompactList}\small\item\em Utility method to convert axes from terrain space (xy terrain, z up) tp world space. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_terrain_a86553dfa0e4c39018d8ee23f96fe588d}{convert\+World\+To\+Terrain\+Axes} (\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} align, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&world\+Vec, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$terrain\+Vec)
\begin{DoxyCompactList}\small\item\em Utility method to convert axes from world space to terrain space (xy terrain, z up) \end{DoxyCompactList}\item 
static \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} \hyperlink{class_ogre_1_1_terrain_a14e9fbfcb1edd236554880595b02899b}{get\+Neighbour\+Index} (long offsetx, long offsety)
\begin{DoxyCompactList}\small\item\em Get the neighbour enum for a given offset in a grid (signed). \end{DoxyCompactList}\item 
static \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} \hyperlink{class_ogre_1_1_terrain_ad90008dc319c694b073fc1e6523e03c2}{get\+Opposite\+Neighbour} (\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} index)
\begin{DoxyCompactList}\small\item\em Get the opposite neighbour relationship (useful for finding the neighbour index from the perspective of the tile the other side of the boundary). \end{DoxyCompactList}\item 
static bool \hyperlink{class_ogre_1_1_terrain_ac78ab1806379267473d03a57dde9bbb8}{read\+Layer\+Declaration} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&ser, \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&targetdecl)
\begin{DoxyCompactList}\small\item\em Utility method to read a layer declaration from a stream. \end{DoxyCompactList}\item 
static bool \hyperlink{class_ogre_1_1_terrain_a5ea9b366b0dead6adf4bb63382851a17}{read\+Layer\+Instance\+List} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&ser, size\+\_\+t num\+Samplers, \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} \&targetlst)
\begin{DoxyCompactList}\small\item\em Utility method to read a layer instance list from a stream. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_terrain_a124c278790b4228e7dfe6a06575cf653}{write\+Layer\+Declaration} (const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&decl, \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&ser)
\begin{DoxyCompactList}\small\item\em Utility method to write a layer declaration to a stream. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_terrain_a7b01d7b34a6cc4c890a393857276bf42}{write\+Layer\+Instance\+List} (const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} \&lst, \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&ser)
\begin{DoxyCompactList}\small\item\em Utility method to write a layer instance list to a stream. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_aaef9ac3a5d1ceed0260a17f93b88d848}{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL}
\item 
static const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_adc4deb8ce09c46f3d6215ea1ff390959}{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS}
\item 
static const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a1ebde7f1f98abe26938397f7110c88f3}{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP}
\item 
static const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_a633492f40707af756814bca31f0f35ba}{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS}
\item 
static const size\+\_\+t \hyperlink{class_ogre_1_1_terrain_aefb36415178b8e15aac901f87b61d3da}{L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_ad1b6d65618e1ebc55155214f3b10b337}{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_afd3641ddf000f3e2ca771408f558131b}{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_a7e1487b57f16a1479302d1896c6f4445}{uint64} \hyperlink{class_ogre_1_1_terrain_a1333f67a868e2e38123ab5c4532cc8e1}{T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a5c204799a40adae8b01411ec05dbc841}{T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_a50efd0b73343b76d8cfae1366cfd1cd0}{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a935d5fea06bddac979ae56c7fa13d9da}{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_a61228d1282e5e503848dab11a2c794fd}{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a3786f2f64dbc4a16984a607bfa53dd82}{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_ac83d9fa6c4ba65db9c7ad66bbd01b0de}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a14ce718231ed706aec11489fc6843d76}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_acb18d059e425a9e6f7677d4dfb2d43ee}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_ac7837f27d59df9244743172d331e2fb3}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_a53d1561777a42b20c5aa5a42dd96bf9b}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a369a6d0c5e30874dd103c7089406be6c}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_adf20ab502696a7e4acf28dec2ebdd0c7}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a6b4dc148f017fbd6441bc81f79fe743d}{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_a0441ddb006dede009b3725e0a5536bba}{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_aaa21ee42164657f45f932c5f70c590a0}{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_terrain_a305c9e25905898002f056b3227b1ee65}{Terrain\+Lod\+Manager}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
The main containing class for a chunk of terrain. 

\begin{DoxyParagraph}{}
\hyperlink{class_ogre_1_1_terrain}{Terrain} can be edited and stored. The data format for this in a file is\+:~\newline
 {\bfseries Terrain\+Data (Identifier \textquotesingle{}T\+E\+RR\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
\hyperlink{class_ogre_1_1_terrain}{Terrain} orientation &uint8 &The orientation of the terrain; XZ = 0, XY = 1, YZ = 2  \\\cline{1-3}
\hyperlink{class_ogre_1_1_terrain}{Terrain} size &uint16 &The number of vertices along one side of the terrain  \\\cline{1-3}
\hyperlink{class_ogre_1_1_terrain}{Terrain} world size &Real &The world size of one side of the terrain  \\\cline{1-3}
Max batch size &uint16 &The maximum batch size in vertices along one side  \\\cline{1-3}
Min batch size &uint16 &The minimum batch size in vertices along one side  \\\cline{1-3}
Position &\hyperlink{class_ogre_1_1_vector3}{Vector3} &The location of the centre of the terrain  \\\cline{1-3}
Height data &float\mbox{[}size$\ast$size\mbox{]} &List of floating point heights  \\\cline{1-3}
Layer\+Declaration &Layer\+Declaration$\ast$ &The layer declaration for this terrain (see below)  \\\cline{1-3}
Layer count &uint8 &The number of layers in this terrain  \\\cline{1-3}
\hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance} list &Layer\+Instance$\ast$ &A number of \hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance} definitions based on layer count (see below)  \\\cline{1-3}
Layer blend map size &uint16 &The size of the layer blend maps as stored in this file  \\\cline{1-3}
Packed blend texture data &uint8$\ast$ &layer\+Count-\/1 sets of blend texture data interleaved as either R\+GB or R\+G\+BA depending on layer count  \\\cline{1-3}
Optional derived map data &Terrain\+Derived\+Map list &0 or more sets of map data derived from the original terrain  \\\cline{1-3}
Delta data &float\mbox{[}size$\ast$size\mbox{]} &At each vertex, delta information for the L\+OD at which this vertex disappears  \\\cline{1-3}
Quadtree delta data &float\mbox{[}quadtrees$\ast$lods\mbox{]} &At each quadtree node, for each lod a record of the max delta value in the region  \\\cline{1-3}
\end{longtabu}
{\bfseries \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} (Identifier \textquotesingle{}T\+D\+CL\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
\hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler} Count &uint8 &Number of samplers in this declaration  \\\cline{1-3}
\hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler} List &Terrain\+Layer\+Sampler$\ast$ &List of \hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler} structures  \\\cline{1-3}
Sampler Element Count &uint8 &Number of sampler elements in this declaration  \\\cline{1-3}
\hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Terrain\+Layer\+Sampler\+Element} List &Terrain\+Layer\+Sampler\+Element$\ast$ &List of \hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Terrain\+Layer\+Sampler\+Element} structures  \\\cline{1-3}
\end{longtabu}
{\bfseries \hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler} (Identifier \textquotesingle{}T\+S\+AM\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Alias &String &Alias name of this sampler  \\\cline{1-3}
Format &uint8 &Desired pixel format  \\\cline{1-3}
\end{longtabu}
{\bfseries \hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Terrain\+Layer\+Sampler\+Element} (Identifier \textquotesingle{}T\+S\+EL\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Source &uint8 &Sampler source index  \\\cline{1-3}
Semantic &uint8 &Semantic interpretation of this element  \\\cline{1-3}
Element start &uint8 &Start of this element in the sampler  \\\cline{1-3}
Element count &uint8 &Number of elements in the sampler used by this entry  \\\cline{1-3}
\end{longtabu}
{\bfseries \hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance} (Identifier \textquotesingle{}T\+L\+IN\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
World size &Real &The world size of this layer (determines UV scaling)  \\\cline{1-3}
\hyperlink{class_ogre_1_1_texture}{Texture} list &String$\ast$ &List of texture names corresponding to the number of samplers in the layer declaration  \\\cline{1-3}
\end{longtabu}
{\bfseries Terrain\+Derived\+Data (Identifier \textquotesingle{}T\+D\+DA\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Derived data type name &String &Name of the derived data type (\textquotesingle{}normalmap\textquotesingle{}, \textquotesingle{}lightmap\textquotesingle{}, \textquotesingle{}colourmap\textquotesingle{}, \textquotesingle{}compositemap\textquotesingle{})  \\\cline{1-3}
Size &uint16 &Size of the data along one edge  \\\cline{1-3}
Data &varies based on type &The data  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a8e3b80784aa7c62ca578c2f8e2a01c7c}\label{class_ogre_1_1_terrain_a8e3b80784aa7c62ca578c2f8e2a01c7c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Real\+Vector@{Real\+Vector}}
\index{Real\+Vector@{Real\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Real\+Vector}{RealVector}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}$>$ \hyperlink{class_ogre_1_1_terrain_a8e3b80784aa7c62ca578c2f8e2a01c7c}{Ogre\+::\+Terrain\+::\+Real\+Vector}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}\label{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Layer\+Instance\+List@{Layer\+Instance\+List}}
\index{Layer\+Instance\+List@{Layer\+Instance\+List}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Layer\+Instance\+List}{LayerInstanceList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_terrain_1_1_layer_instance}{Layer\+Instance}$>$ \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Ogre\+::\+Terrain\+::\+Layer\+Instance\+List}}



\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}\label{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Alignment@{Alignment}}
\index{Alignment@{Alignment}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Alignment}{Alignment}}
{\footnotesize\ttfamily enum \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Ogre\+::\+Terrain\+::\+Alignment}}



The alignment of the terrain. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z@{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z@{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91ac4699c4f99bea344a309d5544b33c140}\label{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91ac4699c4f99bea344a309d5544b33c140}} 
A\+L\+I\+G\+N\+\_\+\+X\+\_\+Z&\hyperlink{class_ogre_1_1_terrain}{Terrain} is in the X/Z plane. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y@{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y@{A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91adfc96b5a388b3e48709d56b899098508}\label{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91adfc96b5a388b3e48709d56b899098508}} 
A\+L\+I\+G\+N\+\_\+\+X\+\_\+Y&\hyperlink{class_ogre_1_1_terrain}{Terrain} is in the X/Y plane. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z@{A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z@{A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91add646ddae48fd0c7cc9c0a74458feb42}\label{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91add646ddae48fd0c7cc9c0a74458feb42}} 
A\+L\+I\+G\+N\+\_\+\+Y\+\_\+Z&\hyperlink{class_ogre_1_1_terrain}{Terrain} is in the Y/Z plane. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Neighbour\+Index@{Neighbour\+Index}}
\index{Neighbour\+Index@{Neighbour\+Index}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Neighbour\+Index}{NeighbourIndex}}
{\footnotesize\ttfamily enum \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Ogre\+::\+Terrain\+::\+Neighbour\+Index}}



Neighbour index enumeration -\/ indexed anticlockwise from East like angles. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a88c6e2c93031bba254272861a1664cc3}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a88c6e2c93031bba254272861a1664cc3}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+E\+A\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aed82e8f7f45fcb5faeef6158c9d1ff3a}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aed82e8f7f45fcb5faeef6158c9d1ff3a}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+E\+A\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a07b3c537d34f5c7e1e3e79634dfcac1d}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a07b3c537d34f5c7e1e3e79634dfcac1d}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+TH&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8795dff5bfc2240747ee0a843a900c71}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8795dff5bfc2240747ee0a843a900c71}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+N\+O\+R\+T\+H\+W\+E\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a3a45b8d00d2ba435e61cdc99c94b0a91}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a3a45b8d00d2ba435e61cdc99c94b0a91}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+W\+E\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aec43a04404ef9873e7d43c094e097e40}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2aec43a04404ef9873e7d43c094e097e40}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+W\+E\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8c91ce1d5f82d7525102bc91fde0df2d}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a8c91ce1d5f82d7525102bc91fde0df2d}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+TH&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a4183a4a8b0f78832395fa0aa981f07bf}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a4183a4a8b0f78832395fa0aa981f07bf}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+S\+O\+U\+T\+H\+E\+A\+ST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT@{N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a5ba448a51833e6c8eea28884a706834c}\label{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2a5ba448a51833e6c8eea28884a706834c}} 
N\+E\+I\+G\+H\+B\+O\+U\+R\+\_\+\+C\+O\+U\+NT&\\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}\label{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Space@{Space}}
\index{Space@{Space}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Space}{Space}}
{\footnotesize\ttfamily enum \hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Ogre\+::\+Terrain\+::\+Space}}



Enumeration of relative spaces that you might want to use to address the terrain. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE@{W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE@{W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0a7049246e4a77e37dcea36fd35c4daf}\label{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0a7049246e4a77e37dcea36fd35c4daf}} 
W\+O\+R\+L\+D\+\_\+\+S\+P\+A\+CE&Simple global world space, axes and positions are all in world space. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE@{L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE@{L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781ae3eabb53019f0d4ecfbff1d9a417d907}\label{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781ae3eabb53019f0d4ecfbff1d9a417d907}} 
L\+O\+C\+A\+L\+\_\+\+S\+P\+A\+CE&As world space, but positions are relative to the terrain world position. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE@{T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE@{T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0ad91edc61b2fb7ebe1966fc167ffe6d}\label{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a0ad91edc61b2fb7ebe1966fc167ffe6d}} 
T\+E\+R\+R\+A\+I\+N\+\_\+\+S\+P\+A\+CE&x \& y are parametric values on the terrain from 0 to 1, with the origin at the bottom left. z is the world space height at that point. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE@{P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE@{P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE}}}\mbox{\Hypertarget{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a748f0b5f2b54c63be96965de53931de6}\label{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781a748f0b5f2b54c63be96965de53931de6}} 
P\+O\+I\+N\+T\+\_\+\+S\+P\+A\+CE&x \& y are integer points on the terrain from 0 to size-\/1, with the origin at the bottom left. z is the world space height at that point. \\
\hline

\end{DoxyEnumFields}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a9cc3d8901c73b6d2b6e1613a22636801}\label{class_ogre_1_1_terrain_a9cc3d8901c73b6d2b6e1613a22636801}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Terrain@{Terrain}}
\index{Terrain@{Terrain}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Terrain()}{Terrain()}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+::\+Terrain (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{sm }\end{DoxyParamCaption})}



Constructor. 


\begin{DoxyParams}{Parameters}
{\em sm} & The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} to use. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad3516cbdabc73135b79f1d34ffda7f01}\label{class_ogre_1_1_terrain_ad3516cbdabc73135b79f1d34ffda7f01}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!````~Terrain@{$\sim$\+Terrain}}
\index{````~Terrain@{$\sim$\+Terrain}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{$\sim$\+Terrain()}{~Terrain()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Terrain\+::$\sim$\+Terrain (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2be9933d1206c531dc84a48f0ccbb833}\label{class_ogre_1_1_terrain_a2be9933d1206c531dc84a48f0ccbb833}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Scene\+Manager@{get\+Scene\+Manager}}
\index{get\+Scene\+Manager@{get\+Scene\+Manager}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Scene\+Manager()}{getSceneManager()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}$\ast$ Ogre\+::\+Terrain\+::get\+Scene\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_afd269cb7c490b88d1aea4fccb4ac2451}\label{class_ogre_1_1_terrain_afd269cb7c490b88d1aea4fccb4ac2451}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Gpu\+Buffer\+Allocator@{set\+Gpu\+Buffer\+Allocator}}
\index{set\+Gpu\+Buffer\+Allocator@{set\+Gpu\+Buffer\+Allocator}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Gpu\+Buffer\+Allocator()}{setGpuBufferAllocator()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Gpu\+Buffer\+Allocator (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator} $\ast$}]{alloc }\end{DoxyParamCaption})}



Tell this instance to use the given \hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator}. 

\begin{DoxyRemark}{Remarks}
May only be called when the terrain is not loaded. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ac384555375690ef86b39c7db91ebe7ca}\label{class_ogre_1_1_terrain_ac384555375690ef86b39c7db91ebe7ca}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Gpu\+Buffer\+Allocator@{get\+Gpu\+Buffer\+Allocator}}
\index{get\+Gpu\+Buffer\+Allocator@{get\+Gpu\+Buffer\+Allocator}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Gpu\+Buffer\+Allocator()}{getGpuBufferAllocator()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_1_1_gpu_buffer_allocator}{Gpu\+Buffer\+Allocator}$\ast$ Ogre\+::\+Terrain\+::get\+Gpu\+Buffer\+Allocator (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the current buffer allocator. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a72c79185cbbc50e1ff016946ae14dca2}\label{class_ogre_1_1_terrain_a72c79185cbbc50e1ff016946ae14dca2}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Num\+Indexes\+For\+Batch\+Size@{\+\_\+get\+Num\+Indexes\+For\+Batch\+Size}}
\index{\+\_\+get\+Num\+Indexes\+For\+Batch\+Size@{\+\_\+get\+Num\+Indexes\+For\+Batch\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Num\+Indexes\+For\+Batch\+Size()}{\_getNumIndexesForBatchSize()}}
{\footnotesize\ttfamily static size\+\_\+t Ogre\+::\+Terrain\+::\+\_\+get\+Num\+Indexes\+For\+Batch\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{batch\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to get the number of indexes required to render a given batch. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_af01e8cc2a2055e30420f626269f3f38d}\label{class_ogre_1_1_terrain_af01e8cc2a2055e30420f626269f3f38d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+populate\+Index\+Buffer@{\+\_\+populate\+Index\+Buffer}}
\index{\+\_\+populate\+Index\+Buffer@{\+\_\+populate\+Index\+Buffer}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+populate\+Index\+Buffer()}{\_populateIndexBuffer()}}
{\footnotesize\ttfamily static void Ogre\+::\+Terrain\+::\+\_\+populate\+Index\+Buffer (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} $\ast$}]{p\+Indexes,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{batch\+Size,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{vdatasize,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{vertex\+Increment,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{xoffset,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{yoffset,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{num\+Skirt\+Rows\+Cols,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{skirt\+Row\+Col\+Skip }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to populate a (locked) index buffer. 


\begin{DoxyParams}{Parameters}
{\em p\+Indexes} & Pointer to an index buffer to populate \\
\hline
{\em batch\+Size} & The number of vertices down one side of the batch \\
\hline
{\em vdatasize} & The number of vertices down one side of the vertex data being referenced \\
\hline
{\em vertex\+Increment} & The number of vertices to increment for each new indexed row / column \\
\hline
{\em xoffset} & The x offset from the start of the vertex data being referenced \\
\hline
{\em yoffset} & The y offset from the start of the vertex data being referenced \\
\hline
{\em num\+Skirt\+Rows\+Cols} & Number of rows and columns of skirts \\
\hline
{\em skirt\+Row\+Col\+Skip} & The number of rows / cols to skip in between skirts \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2ba2f7a6eb2c9356d6bddaf30fe72257}\label{class_ogre_1_1_terrain_a2ba2f7a6eb2c9356d6bddaf30fe72257}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+calc\+Skirt\+Vertex\+Index@{\+\_\+calc\+Skirt\+Vertex\+Index}}
\index{\+\_\+calc\+Skirt\+Vertex\+Index@{\+\_\+calc\+Skirt\+Vertex\+Index}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+calc\+Skirt\+Vertex\+Index()}{\_calcSkirtVertexIndex()}}
{\footnotesize\ttfamily static \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+\_\+calc\+Skirt\+Vertex\+Index (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{main\+Index,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{vdatasize,  }\item[{bool}]{is\+Col,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{num\+Skirt\+Rows\+Cols,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{skirt\+Row\+Col\+Skip }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to calculate the skirt index for a given original vertex index. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a6ad6246dddf231e761c52af18397369f}\label{class_ogre_1_1_terrain_a6ad6246dddf231e761c52af18397369f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+Position@{convert\+Position}}
\index{convert\+Position@{convert\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+Position()}{convertPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::convert\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{in\+Space,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Pos,  }\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{out\+Space,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{out\+Pos }\end{DoxyParamCaption}) const}



Convert a position from one space to another with respect to this terrain. 


\begin{DoxyParams}{Parameters}
{\em in\+Space} & The space that in\+Pos is expressed as \\
\hline
{\em in\+Pos} & The incoming position \\
\hline
{\em out\+Space} & The space which out\+Pos should be expressed as \\
\hline
{\em out\+Pos} & The output position to be populated \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a09f6174d11a0339d9ff44775d48dee09}\label{class_ogre_1_1_terrain_a09f6174d11a0339d9ff44775d48dee09}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+Position@{convert\+Position}}
\index{convert\+Position@{convert\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+Position()}{convertPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vector3}{Vector3} Ogre\+::\+Terrain\+::convert\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{in\+Space,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Pos,  }\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{out\+Space }\end{DoxyParamCaption}) const}



Convert a position from one space to another with respect to this terrain. 


\begin{DoxyParams}{Parameters}
{\em in\+Space} & The space that in\+Pos is expressed as \\
\hline
{\em in\+Pos} & The incoming position \\
\hline
{\em out\+Space} & The space which out\+Pos should be expressed as \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The output position 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a6a94314390459778b11cb4785dbd41ca}\label{class_ogre_1_1_terrain_a6a94314390459778b11cb4785dbd41ca}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+Direction@{convert\+Direction}}
\index{convert\+Direction@{convert\+Direction}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+Direction()}{convertDirection()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::convert\+Direction (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{in\+Space,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Dir,  }\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{out\+Space,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{out\+Dir }\end{DoxyParamCaption}) const}



Convert a direction from one space to another with respect to this terrain. 


\begin{DoxyParams}{Parameters}
{\em in\+Space} & The space that in\+Dir is expressed as \\
\hline
{\em in\+Dir} & The incoming direction \\
\hline
{\em out\+Space} & The space which out\+Dir should be expressed as \\
\hline
{\em out\+Dir} & The output direction to be populated \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a33bb06af72903323c8b8daa67c17abd7}\label{class_ogre_1_1_terrain_a33bb06af72903323c8b8daa67c17abd7}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+Direction@{convert\+Direction}}
\index{convert\+Direction@{convert\+Direction}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+Direction()}{convertDirection()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vector3}{Vector3} Ogre\+::\+Terrain\+::convert\+Direction (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{in\+Space,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Dir,  }\item[{\hyperlink{class_ogre_1_1_terrain_aebf8a7aadb5de3a0669d41acfd58d781}{Space}}]{out\+Space }\end{DoxyParamCaption}) const}



Convert a direction from one space to another with respect to this terrain. 


\begin{DoxyParams}{Parameters}
{\em in\+Space} & The space that in\+Dir is expressed as \\
\hline
{\em in\+Dir} & The incoming direction \\
\hline
{\em out\+Space} & The space which out\+Dir should be expressed as \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The output direction 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aacd2dcc94afbc3e8fbca6d6de1baedab}\label{class_ogre_1_1_terrain_aacd2dcc94afbc3e8fbca6d6de1baedab}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Resource\+Group@{set\+Resource\+Group}}
\index{set\+Resource\+Group@{set\+Resource\+Group}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Resource\+Group()}{setResourceGroup()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Resource\+Group (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{res\+Group }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the resource group to use when loading / saving. 


\begin{DoxyParams}{Parameters}
{\em res\+Group} & \hyperlink{class_ogre_1_1_resource}{Resource} group name -\/ you can set this to blank to use the default in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ab70c3378a72f1b865359357910fba55f}\label{class_ogre_1_1_terrain_ab70c3378a72f1b865359357910fba55f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Resource\+Group@{get\+Resource\+Group}}
\index{get\+Resource\+Group@{get\+Resource\+Group}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Resource\+Group()}{getResourceGroup()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+::get\+Resource\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the resource group to use when loading / saving. 

If this is blank, the default in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} will be used. \mbox{\Hypertarget{class_ogre_1_1_terrain_a0db172baacac0e72c16253fdf7986ff2}\label{class_ogre_1_1_terrain_a0db172baacac0e72c16253fdf7986ff2}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Derived\+Resource\+Group@{\+\_\+get\+Derived\+Resource\+Group}}
\index{\+\_\+get\+Derived\+Resource\+Group@{\+\_\+get\+Derived\+Resource\+Group}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Derived\+Resource\+Group()}{\_getDerivedResourceGroup()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+::\+\_\+get\+Derived\+Resource\+Group (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the final resource group to use when loading / saving. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}\label{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!save@{save}}
\index{save@{save}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{save()}{save()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::save (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})}



Save terrain data in native form to a standalone file. 


\begin{DoxyParams}{Parameters}
{\em filename} & The name of the file to save to. If this is a filename with no path elements, then it is saved in the first writeable location available in the resource group you have chosen to use for this terrain. If the filename includes path specifiers then it is saved directly instead (but note that it may not be reloadable via the resource system if the location is not on the path). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_afce38d08848608e3bf4642678e289181}\label{class_ogre_1_1_terrain_afce38d08848608e3bf4642678e289181}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!save@{save}}
\index{save@{save}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{save()}{save()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::save (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{stream }\end{DoxyParamCaption})}



Save terrain data in native form to a serializing stream. 

\begin{DoxyRemark}{Remarks}
If you want complete control over where the terrain data goes, use this form. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}\label{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::prepare (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})}



Prepare the terrain from a standalone file. 

\begin{DoxyNote}{Note}
This is safe to do in a background thread as it creates no G\+PU resources. It reads data from a native terrain data chunk. For more advanced uses, such as loading from a shared file, use the \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} form. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2f08575d471649617945b200154478c5}\label{class_ogre_1_1_terrain_a2f08575d471649617945b200154478c5}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::prepare (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a8a2a961b4205aacff9c01e81e08d7781}{Data\+Stream\+Ptr} \&}]{stream }\end{DoxyParamCaption})}



Prepare terrain data from saved data. 

\begin{DoxyRemark}{Remarks}
This is safe to do in a background thread as it creates no G\+PU resources. It reads data from a native terrain data chunk. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the preparation was successful 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a20d7b036e25805405d3140b3751ec4b6}\label{class_ogre_1_1_terrain_a20d7b036e25805405d3140b3751ec4b6}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::prepare (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{stream }\end{DoxyParamCaption})}



Prepare terrain data from saved data. 

\begin{DoxyRemark}{Remarks}
This is safe to do in a background thread as it creates no G\+PU resources. It reads data from a native terrain data chunk. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the preparation was successful 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2b61cedddcd4ebe3b6c27068e2624d74}\label{class_ogre_1_1_terrain_a2b61cedddcd4ebe3b6c27068e2624d74}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{prepare()}{prepare()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::prepare (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Import\+Data} \&}]{import\+Data }\end{DoxyParamCaption})}



Prepare the terrain from some import data rather than loading from native data. 

\begin{DoxyRemark}{Remarks}
This method may be called in a background thread. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ae7381fe2e7ea64304f59e7f10b6c90ec}\label{class_ogre_1_1_terrain_ae7381fe2e7ea64304f59e7f10b6c90ec}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!load@{load}}
\index{load@{load}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{load()}{load()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::load (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})}



Prepare and load the terrain in one simple call from a standalone file. 

\begin{DoxyNote}{Note}
This method must be called from the primary render thread. To load data in a background thread, use the \hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{prepare()} method. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ae3fc60c0f8350b4872323ddf258d922d}\label{class_ogre_1_1_terrain_ae3fc60c0f8350b4872323ddf258d922d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!load@{load}}
\index{load@{load}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{load()}{load()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::load (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{stream }\end{DoxyParamCaption})}



Prepare and load the terrain in one simple call from a stream. 

\begin{DoxyNote}{Note}
This method must be called from the primary render thread. To load data in a background thread, use the \hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{prepare()} method. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a78949cbc0a2a6d717b4606043b46d5c7}\label{class_ogre_1_1_terrain_a78949cbc0a2a6d717b4606043b46d5c7}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!load@{load}}
\index{load@{load}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{load()}{load()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::load (\begin{DoxyParamCaption}\item[{int}]{lod\+Level = {\ttfamily 0},  }\item[{bool}]{synchronous = {\ttfamily true} }\end{DoxyParamCaption})}



Load the terrain based on the data already populated via prepare methods. 

\begin{DoxyRemark}{Remarks}
This method must be called in the main render thread. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em lod\+Level} & Load the specified L\+OD level \\
\hline
{\em synchronous} & Load type \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_af0c198af3449240a57dc63380e38a9fe}\label{class_ogre_1_1_terrain_af0c198af3449240a57dc63380e38a9fe}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!is\+Loaded@{is\+Loaded}}
\index{is\+Loaded@{is\+Loaded}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{is\+Loaded()}{isLoaded()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::is\+Loaded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Return whether the terrain is loaded. 

\begin{DoxyRemark}{Remarks}
Should only be called from the render thread really, since this is where the loaded state changes. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ac09cc65643825f293320058bc6ed07ab}\label{class_ogre_1_1_terrain_ac09cc65643825f293320058bc6ed07ab}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!is\+Modified@{is\+Modified}}
\index{is\+Modified@{is\+Modified}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{is\+Modified()}{isModified()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::is\+Modified (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns whether this terrain has been modified since it was first loaded / defined. 

\begin{DoxyRemark}{Remarks}
This flag is reset on \hyperlink{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}{save()}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a0f29e0c116626bcb1bdb45835e0752cc}\label{class_ogre_1_1_terrain_a0f29e0c116626bcb1bdb45835e0752cc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!is\+Height\+Data\+Modified@{is\+Height\+Data\+Modified}}
\index{is\+Height\+Data\+Modified@{is\+Height\+Data\+Modified}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{is\+Height\+Data\+Modified()}{isHeightDataModified()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::is\+Height\+Data\+Modified (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns whether terrain heights have been modified since the terrain was first loaded / defined. 

\begin{DoxyRemark}{Remarks}
This flag is reset on \hyperlink{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}{save()}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_acee00b1d1d1d46633cd88b3b49f488cf}\label{class_ogre_1_1_terrain_acee00b1d1d1d46633cd88b3b49f488cf}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!unload@{unload}}
\index{unload@{unload}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{unload()}{unload()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::unload (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Unload the terrain and free G\+PU resources. 

\begin{DoxyRemark}{Remarks}
This method must be called in the main render thread. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aa67c987848bb325bc3aef2b0ad7a9adf}\label{class_ogre_1_1_terrain_aa67c987848bb325bc3aef2b0ad7a9adf}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!unprepare@{unprepare}}
\index{unprepare@{unprepare}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{unprepare()}{unprepare()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::unprepare (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Free C\+PU resources created during prepare methods. 

\begin{DoxyRemark}{Remarks}
This is safe to do in a background thread after calling \hyperlink{class_ogre_1_1_terrain_acee00b1d1d1d46633cd88b3b49f488cf}{unload()}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a8e9cebcb6e0a3dd2c9171e3ab91473eb}\label{class_ogre_1_1_terrain_a8e9cebcb6e0a3dd2c9171e3ab91473eb}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+Data@{get\+Height\+Data}}
\index{get\+Height\+Data@{get\+Height\+Data}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+Data()}{getHeightData()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily float$\ast$ Ogre\+::\+Terrain\+::get\+Height\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get a pointer to all the height data for this terrain. 

\begin{DoxyRemark}{Remarks}
The height data is in world coordinates, relative to the position of the terrain. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
This pointer is not const, so you can update the height data if you wish. However, changes will not be propagated until you call \hyperlink{class_ogre_1_1_terrain_aab69f3dead87b53b84784c7d7d325f68}{Terrain\+::dirty} or \hyperlink{class_ogre_1_1_terrain_a0a9de436fad8d6f3a95b1b78314fb736}{Terrain\+::dirty\+Rect}. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a82526bd44821c3ceec9eaead8153c8fe}\label{class_ogre_1_1_terrain_a82526bd44821c3ceec9eaead8153c8fe}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+Data@{get\+Height\+Data}}
\index{get\+Height\+Data@{get\+Height\+Data}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+Data()}{getHeightData()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily float$\ast$ Ogre\+::\+Terrain\+::get\+Height\+Data (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Get a pointer to the height data for a given point. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a8155c2ed894483ab36fa0e22ab8f33cd}\label{class_ogre_1_1_terrain_a8155c2ed894483ab36fa0e22ab8f33cd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+At\+Point@{get\+Height\+At\+Point}}
\index{get\+Height\+At\+Point@{get\+Height\+At\+Point}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+At\+Point()}{getHeightAtPoint()}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+::get\+Height\+At\+Point (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Get the height data for a given terrain point. 


\begin{DoxyParams}{Parameters}
{\em x,y} & Discrete coordinates in terrain vertices, values from 0 to size-\/1, left/right bottom/top \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad6f2c33d6fc3f6152a7b6fd0069a7864}\label{class_ogre_1_1_terrain_ad6f2c33d6fc3f6152a7b6fd0069a7864}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Height\+At\+Point@{set\+Height\+At\+Point}}
\index{set\+Height\+At\+Point@{set\+Height\+At\+Point}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Height\+At\+Point()}{setHeightAtPoint()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Height\+At\+Point (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{float}]{h }\end{DoxyParamCaption})}



Set the height data for a given terrain point. 

\begin{DoxyNote}{Note}
this doesn\textquotesingle{}t take effect until you call \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update()} 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em x,y} & Discrete coordinates in terrain vertices, values from 0 to size-\/1, left/right bottom/top \\
\hline
{\em h} & The new height \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ae50846c3688082ececfe0d56ed78c792}\label{class_ogre_1_1_terrain_ae50846c3688082ececfe0d56ed78c792}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+At\+Terrain\+Position@{get\+Height\+At\+Terrain\+Position}}
\index{get\+Height\+At\+Terrain\+Position@{get\+Height\+At\+Terrain\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+At\+Terrain\+Position()}{getHeightAtTerrainPosition()}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+::get\+Height\+At\+Terrain\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y }\end{DoxyParamCaption}) const}



Get the height data for a given terrain position. 


\begin{DoxyParams}{Parameters}
{\em x,y} & Position in terrain space, values from 0 to 1 left/right bottom/top \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a7719018dcfb417865f00ddeef7b0951b}\label{class_ogre_1_1_terrain_a7719018dcfb417865f00ddeef7b0951b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}}
\index{get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+At\+World\+Position()}{getHeightAtWorldPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+::get\+Height\+At\+World\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z }\end{DoxyParamCaption}) const}



Get the height data for a given world position (projecting the point down on to the terrain). 


\begin{DoxyParams}{Parameters}
{\em x,y,z} & Position in world space. Positions will be clamped to the edge of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad365d761359884e56a7c0164086a57d9}\label{class_ogre_1_1_terrain_ad365d761359884e56a7c0164086a57d9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}}
\index{get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Height\+At\+World\+Position()}{getHeightAtWorldPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+::get\+Height\+At\+World\+Position (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{pos }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a138c70e096ebcbf02c29b80eb11f1806}\label{class_ogre_1_1_terrain_a138c70e096ebcbf02c29b80eb11f1806}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Delta\+Data@{get\+Delta\+Data}}
\index{get\+Delta\+Data@{get\+Delta\+Data}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Delta\+Data()}{getDeltaData()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const float$\ast$ Ogre\+::\+Terrain\+::get\+Delta\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get a pointer to all the delta data for this terrain. 

\begin{DoxyRemark}{Remarks}
The delta data is a measure at a given vertex of by how much vertically a vertex will have to move to reach the point at which it will be removed in the next lower L\+OD. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a75f457ff6165e331910f554c224bdcd7}\label{class_ogre_1_1_terrain_a75f457ff6165e331910f554c224bdcd7}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Delta\+Data@{get\+Delta\+Data}}
\index{get\+Delta\+Data@{get\+Delta\+Data}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Delta\+Data()}{getDeltaData()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const float$\ast$ Ogre\+::\+Terrain\+::get\+Delta\+Data (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Get a pointer to the delta data for a given point. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a7da93ef534c25a0724626b942cb07980}\label{class_ogre_1_1_terrain_a7da93ef534c25a0724626b942cb07980}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Point@{get\+Point}}
\index{get\+Point@{get\+Point}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Point()}{getPoint()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Point (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{outpos }\end{DoxyParamCaption}) const}



Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, aligned as per options. 

\begin{DoxyNote}{Note}
This point is relative to \hyperlink{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}{Terrain\+::get\+Position} 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a960a5d393908108b8257399d647fa3a5}\label{class_ogre_1_1_terrain_a960a5d393908108b8257399d647fa3a5}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Point\+From\+Self\+Or\+Neighbour@{get\+Point\+From\+Self\+Or\+Neighbour}}
\index{get\+Point\+From\+Self\+Or\+Neighbour@{get\+Point\+From\+Self\+Or\+Neighbour}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Point\+From\+Self\+Or\+Neighbour()}{getPointFromSelfOrNeighbour()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Point\+From\+Self\+Or\+Neighbour (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{outpos }\end{DoxyParamCaption}) const}



Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, aligned as per options. 

Cascades into neighbours if out of bounds. \begin{DoxyNote}{Note}
This point is relative to \hyperlink{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}{Terrain\+::get\+Position} -\/ neighbours are adjusted to be relative to this tile 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a4a17ec359bcfa2f4643500125a2643af}\label{class_ogre_1_1_terrain_a4a17ec359bcfa2f4643500125a2643af}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Point@{get\+Point}}
\index{get\+Point@{get\+Point}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Point()}{getPoint()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Point (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{float}]{height,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{outpos }\end{DoxyParamCaption}) const}



Get a \hyperlink{class_ogre_1_1_vector3}{Vector3} of the world-\/space point on the terrain, supplying the height data manually (can be more optimal). 

\begin{DoxyNote}{Note}
This point is relative to \hyperlink{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}{Terrain\+::get\+Position} 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_acde0829d11ee2cd77bb4affa9209cb79}\label{class_ogre_1_1_terrain_acde0829d11ee2cd77bb4affa9209cb79}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Point\+Transform@{get\+Point\+Transform}}
\index{get\+Point\+Transform@{get\+Point\+Transform}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Point\+Transform()}{getPointTransform()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Point\+Transform (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_matrix4}{Matrix4} $\ast$}]{out\+Xform }\end{DoxyParamCaption}) const}



Get a transform which converts Vector4(xindex, yindex, height, 1) into an object-\/space position including scalings and alignment. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a61849058085ae7cb6c0e16bb5c21cb03}\label{class_ogre_1_1_terrain_a61849058085ae7cb6c0e16bb5c21cb03}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Vector@{get\+Terrain\+Vector}}
\index{get\+Terrain\+Vector@{get\+Terrain\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Vector()}{getTerrainVector()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Vector (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Vec,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}



Translate a vector from world space to local terrain space based on the alignment options. 


\begin{DoxyParams}[1]{Parameters}
 & {\em in\+Vec} & The vector in basis space, where x/y represents the terrain plane and z represents the up vector \\
\hline
\mbox{\tt out}  & {\em out\+Vec} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_abb4ffa0b942aca1273cc6af52c2f2b81}\label{class_ogre_1_1_terrain_abb4ffa0b942aca1273cc6af52c2f2b81}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Vector@{get\+Terrain\+Vector}}
\index{get\+Terrain\+Vector@{get\+Terrain\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Vector()}{getTerrainVector()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Vector (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_aad404a040c30d1138b406cff801e1b56}\label{class_ogre_1_1_terrain_aad404a040c30d1138b406cff801e1b56}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Vector\+Align@{get\+Terrain\+Vector\+Align}}
\index{get\+Terrain\+Vector\+Align@{get\+Terrain\+Vector\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Vector\+Align()}{getTerrainVectorAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Vector\+Align (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Vec,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}



Translate a vector from world space to local terrain space based on a specified alignment. 


\begin{DoxyParams}[1]{Parameters}
 & {\em in\+Vec} & The vector in basis space, where x/y represents the terrain plane and z represents the up vector \\
\hline
\mbox{\tt out}  & {\em out\+Vec} & \\
\hline
 & {\em align} & The alignment of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_af37504438f3cca3341419bbf43b28331}\label{class_ogre_1_1_terrain_af37504438f3cca3341419bbf43b28331}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Vector\+Align@{get\+Terrain\+Vector\+Align}}
\index{get\+Terrain\+Vector\+Align@{get\+Terrain\+Vector\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Vector\+Align()}{getTerrainVectorAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Vector\+Align (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a9831992c806d7b12114acdf35fc40aff}\label{class_ogre_1_1_terrain_a9831992c806d7b12114acdf35fc40aff}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Vector@{get\+Vector}}
\index{get\+Vector@{get\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Vector()}{getVector()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Vector (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Vec,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}



Translate a vector into world space based on the alignment options. 


\begin{DoxyParams}[1]{Parameters}
 & {\em in\+Vec} & The vector in basis space, where x/y represents the terrain plane and z represents the up vector \\
\hline
\mbox{\tt out}  & {\em out\+Vec} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_af8cafe25232ec796bdb2ae229de6d590}\label{class_ogre_1_1_terrain_af8cafe25232ec796bdb2ae229de6d590}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Vector@{get\+Vector}}
\index{get\+Vector@{get\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Vector()}{getVector()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Vector (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a00dd54e0cf38fac3e729bf481761a672}\label{class_ogre_1_1_terrain_a00dd54e0cf38fac3e729bf481761a672}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Vector\+Align@{get\+Vector\+Align}}
\index{get\+Vector\+Align@{get\+Vector\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Vector\+Align()}{getVectorAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Vector\+Align (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{in\+Vec,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}



Translate a vector into world space based on a specified alignment. 


\begin{DoxyParams}[1]{Parameters}
 & {\em in\+Vec} & The vector in basis space, where x/y represents the terrain plane and z represents the up vector \\
\hline
\mbox{\tt out}  & {\em out\+Vec} & \\
\hline
 & {\em align} & The alignment of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a539d01d15e180e7c67727884badd5b7d}\label{class_ogre_1_1_terrain_a539d01d15e180e7c67727884badd5b7d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Vector\+Align@{get\+Vector\+Align}}
\index{get\+Vector\+Align@{get\+Vector\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Vector\+Align()}{getVectorAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Vector\+Align (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+Vec }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}\label{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Position@{get\+Position}}
\index{get\+Position@{get\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Position()}{getPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Position (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{T\+Spos,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+W\+Spos }\end{DoxyParamCaption}) const}



Convert a position from terrain basis space to world space. 


\begin{DoxyParams}{Parameters}
{\em T\+Spos} & \hyperlink{class_ogre_1_1_terrain}{Terrain} space position, where (0,0) is the bottom-\/left of the terrain, and (1,1) is the top-\/right. The Z coordinate is in absolute height units. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This position is relative to \hyperlink{class_ogre_1_1_terrain_a19d92cbdb6f2dc3ff5bc8e57ee3df8dc}{Terrain\+::get\+Position} 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em out\+W\+Spos} & World space output position (setup according to current alignment). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a4f12c4926b592f118508ee06b84eb220}\label{class_ogre_1_1_terrain_a4f12c4926b592f118508ee06b84eb220}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Position@{get\+Position}}
\index{get\+Position@{get\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Position()}{getPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+W\+Spos }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_aac94de7f1d8908a2adc0432b05804a00}\label{class_ogre_1_1_terrain_aac94de7f1d8908a2adc0432b05804a00}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Position@{get\+Terrain\+Position}}
\index{get\+Terrain\+Position@{get\+Terrain\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Position()}{getTerrainPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Position (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{W\+Spos,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+T\+Spos }\end{DoxyParamCaption}) const}



Convert a position from world space to terrain basis space. 


\begin{DoxyParams}{Parameters}
{\em W\+Spos} & World space position (setup according to current alignment). \\
\hline
{\em out\+T\+Spos} & \hyperlink{class_ogre_1_1_terrain}{Terrain} space output position, where (0,0) is the bottom-\/left of the terrain, and (1,1) is the top-\/right. The Z coordinate is in absolute height units. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a7db38251c418f66b2615037babfe781d}\label{class_ogre_1_1_terrain_a7db38251c418f66b2615037babfe781d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Position@{get\+Terrain\+Position}}
\index{get\+Terrain\+Position@{get\+Terrain\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Position()}{getTerrainPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Position (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+T\+Spos }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_af6b0f1642a0f159d6000594ccf006736}\label{class_ogre_1_1_terrain_af6b0f1642a0f159d6000594ccf006736}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Position\+Align@{get\+Position\+Align}}
\index{get\+Position\+Align@{get\+Position\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Position\+Align()}{getPositionAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Position\+Align (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{T\+Spos,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+W\+Spos }\end{DoxyParamCaption}) const}



Convert a position from terrain basis space to world space based on a specified alignment. 


\begin{DoxyParams}{Parameters}
{\em T\+Spos} & \hyperlink{class_ogre_1_1_terrain}{Terrain} space position, where (0,0) is the bottom-\/left of the terrain, and (1,1) is the top-\/right. The Z coordinate is in absolute height units. \\
\hline
{\em out\+W\+Spos} & World space output position (setup according to alignment). \\
\hline
{\em align} & The alignment of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a6f04aa8304bb033f4d33b64e08f05410}\label{class_ogre_1_1_terrain_a6f04aa8304bb033f4d33b64e08f05410}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Position\+Align@{get\+Position\+Align}}
\index{get\+Position\+Align@{get\+Position\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Position\+Align()}{getPositionAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Position\+Align (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+W\+Spos }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a3fb22ca5067bb7f2b5b6d29f6e64a2b0}\label{class_ogre_1_1_terrain_a3fb22ca5067bb7f2b5b6d29f6e64a2b0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Position\+Align@{get\+Terrain\+Position\+Align}}
\index{get\+Terrain\+Position\+Align@{get\+Terrain\+Position\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Position\+Align()}{getTerrainPositionAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Position\+Align (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{W\+Spos,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+T\+Spos }\end{DoxyParamCaption}) const}



Convert a position from world space to terrain basis space based on a specified alignment. 


\begin{DoxyParams}{Parameters}
{\em W\+Spos} & World space position (setup according to alignment). \\
\hline
{\em out\+T\+Spos} & \hyperlink{class_ogre_1_1_terrain}{Terrain} space output position, where (0,0) is the bottom-\/left of the terrain, and (1,1) is the top-\/right. The Z coordinate is in absolute height units. \\
\hline
{\em align} & The alignment of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a1b38900f2914d915b54dc3ce1d37eb40}\label{class_ogre_1_1_terrain_a1b38900f2914d915b54dc3ce1d37eb40}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Position\+Align@{get\+Terrain\+Position\+Align}}
\index{get\+Terrain\+Position\+Align@{get\+Terrain\+Position\+Align}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Position\+Align()}{getTerrainPositionAlign()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::get\+Terrain\+Position\+Align (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{x,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{y,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{z,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{out\+T\+Spos }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_terrain_a7b0821197e537ceeff981835c0c127e2}\label{class_ogre_1_1_terrain_a7b0821197e537ceeff981835c0c127e2}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Alignment@{get\+Alignment}}
\index{get\+Alignment@{get\+Alignment}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Alignment()}{getAlignment()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment} Ogre\+::\+Terrain\+::get\+Alignment (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the alignment of the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aa23d586fa8023d7992107388bec2d0bd}\label{class_ogre_1_1_terrain_aa23d586fa8023d7992107388bec2d0bd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Size@{get\+Size}}
\index{get\+Size@{get\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Size()}{getSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the size of the terrain in vertices along one side. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a94a15b828bc003a3bc6a019c9fbbd2ff}\label{class_ogre_1_1_terrain_a94a15b828bc003a3bc6a019c9fbbd2ff}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Size@{set\+Size}}
\index{set\+Size@{set\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Size()}{setSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{new\+Size }\end{DoxyParamCaption})}



Set the size of terrain in vertices along one side. 

\begin{DoxyNote}{Note}
The existing height data will be bilinear filtered to fill the new size 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em new\+Size} & the new size of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a33059cbc4162471869976806c34038e6}\label{class_ogre_1_1_terrain_a33059cbc4162471869976806c34038e6}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Max\+Batch\+Size@{get\+Max\+Batch\+Size}}
\index{get\+Max\+Batch\+Size@{get\+Max\+Batch\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Max\+Batch\+Size()}{getMaxBatchSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Max\+Batch\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the maximum size in vertices along one side of a batch. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_afdd76575197788ad0da8d138ab289254}\label{class_ogre_1_1_terrain_afdd76575197788ad0da8d138ab289254}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Min\+Batch\+Size@{get\+Min\+Batch\+Size}}
\index{get\+Min\+Batch\+Size@{get\+Min\+Batch\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Min\+Batch\+Size()}{getMinBatchSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Min\+Batch\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the minimum size in vertices along one side of a batch. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_abf52cde19183386c011d27a3e190cd7a}\label{class_ogre_1_1_terrain_abf52cde19183386c011d27a3e190cd7a}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+World\+Size@{get\+World\+Size}}
\index{get\+World\+Size@{get\+World\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+World\+Size()}{getWorldSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+World\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the size of the terrain in world units. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_ad807304e85ba44ddb02aa7cbd639ef4b}\label{class_ogre_1_1_terrain_ad807304e85ba44ddb02aa7cbd639ef4b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+World\+Size@{set\+World\+Size}}
\index{set\+World\+Size@{set\+World\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+World\+Size()}{setWorldSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+World\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{new\+World\+Size }\end{DoxyParamCaption})}



Set the world size of terrain. 


\begin{DoxyParams}{Parameters}
{\em new\+World\+Size} & the new world size of the terrain \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a1b6d6be6683260c79d51cb5d9a8ca6be}\label{class_ogre_1_1_terrain_a1b6d6be6683260c79d51cb5d9a8ca6be}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Count@{get\+Layer\+Count}}
\index{get\+Layer\+Count@{get\+Layer\+Count}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Count()}{getLayerCount()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Layer\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of layers in this terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a6ca23f03f11b337903ed42c274b41423}\label{class_ogre_1_1_terrain_a6ca23f03f11b337903ed42c274b41423}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Declaration@{get\+Layer\+Declaration}}
\index{get\+Layer\+Declaration@{get\+Layer\+Declaration}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Declaration()}{getLayerDeclaration()}}
{\footnotesize\ttfamily const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration}\& Ogre\+::\+Terrain\+::get\+Layer\+Declaration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the declaration which describes the layers in this terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a70a42e6eb37cb024b4573fc912e219b4}\label{class_ogre_1_1_terrain_a70a42e6eb37cb024b4573fc912e219b4}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!add\+Layer@{add\+Layer}}
\index{add\+Layer@{add\+Layer}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{add\+Layer()}{addLayer()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::add\+Layer (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{world\+Size = {\ttfamily 0},  }\item[{const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$}]{texture\+Names = {\ttfamily 0} }\end{DoxyParamCaption})}



Add a new layer to this terrain. 


\begin{DoxyParams}{Parameters}
{\em world\+Size} & The size of the texture in this layer in world units. Default to zero to use the default \\
\hline
{\em texture\+Names} & A list of textures to assign to the samplers in this layer. Leave blank to provide these later. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a1b09422cf8baa9b8dddd45290de9a666}\label{class_ogre_1_1_terrain_a1b09422cf8baa9b8dddd45290de9a666}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!add\+Layer@{add\+Layer}}
\index{add\+Layer@{add\+Layer}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{add\+Layer()}{addLayer()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::add\+Layer (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{world\+Size = {\ttfamily 0},  }\item[{const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$}]{texture\+Names = {\ttfamily 0} }\end{DoxyParamCaption})}



Add a new layer to this terrain at a specific index. 


\begin{DoxyParams}{Parameters}
{\em index} & The index at which to insert this layer (existing layers are shifted forwards) \\
\hline
{\em world\+Size} & The size of the texture in this layer in world units. Default to zero to use the default \\
\hline
{\em texture\+Names} & A list of textures to assign to the samplers in this layer. Leave blank to provide these later. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ae0b3ec5f09b44fdc3b83f0535c2d1a27}\label{class_ogre_1_1_terrain_ae0b3ec5f09b44fdc3b83f0535c2d1a27}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!remove\+Layer@{remove\+Layer}}
\index{remove\+Layer@{remove\+Layer}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{remove\+Layer()}{removeLayer()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::remove\+Layer (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index }\end{DoxyParamCaption})}



Remove a layer from the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_ae052005afc7eb71b24aef24fc22dd7e0}\label{class_ogre_1_1_terrain_ae052005afc7eb71b24aef24fc22dd7e0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!replace\+Layer@{replace\+Layer}}
\index{replace\+Layer@{replace\+Layer}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{replace\+Layer()}{replaceLayer()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::replace\+Layer (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index,  }\item[{bool}]{keep\+Blends,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{world\+Size = {\ttfamily 0},  }\item[{const \hyperlink{group___general_ga783e5227595f351519627abfb740ec85}{String\+Vector} $\ast$}]{texture\+Names = {\ttfamily 0} }\end{DoxyParamCaption})}



Replace an existing terrain layer, optionally preserving all other layer blend maps. 


\begin{DoxyParams}{Parameters}
{\em index} & The 0 based index of the terrain layer to replace \\
\hline
{\em keep\+Blends} & True to keep using the existing blend maps. False to reset the blend map for the layer. Irrelevant if index == 0 \\
\hline
{\em world\+Size} & The size of the texture in this layer in world units. Default to zero to use the default \\
\hline
{\em texture\+Names} & A list of textures to assign to the samplers in this layer. Leave blank to provide these later. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a891a8c6a16efd6ecf16508e21cade01e}\label{class_ogre_1_1_terrain_a891a8c6a16efd6ecf16508e21cade01e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Max\+Layers@{get\+Max\+Layers}}
\index{get\+Max\+Layers@{get\+Max\+Layers}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Max\+Layers()}{getMaxLayers()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Max\+Layers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the maximum number of layers supported with the current options. 

\begin{DoxyNote}{Note}
When you change the options requested, this value can change. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a30d2fed380ea0b55b182cccf77670108}\label{class_ogre_1_1_terrain_a30d2fed380ea0b55b182cccf77670108}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+World\+Size@{get\+Layer\+World\+Size}}
\index{get\+Layer\+World\+Size@{get\+Layer\+World\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+World\+Size()}{getLayerWorldSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Layer\+World\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index }\end{DoxyParamCaption}) const}



How large an area in world space the texture in a terrain layer covers before repeating. 


\begin{DoxyParams}{Parameters}
{\em index} & The layer index. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a4447c7ef2269781192e5b637035b08fc}\label{class_ogre_1_1_terrain_a4447c7ef2269781192e5b637035b08fc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Layer\+World\+Size@{set\+Layer\+World\+Size}}
\index{set\+Layer\+World\+Size@{set\+Layer\+World\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Layer\+World\+Size()}{setLayerWorldSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Layer\+World\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{size }\end{DoxyParamCaption})}



How large an area in world space the texture in a terrain layer covers before repeating. 


\begin{DoxyParams}{Parameters}
{\em index} & The layer index. \\
\hline
{\em size} & The world size of the texture before repeating \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ac38fc212b7a4d6a21843518c237cc44d}\label{class_ogre_1_1_terrain_ac38fc212b7a4d6a21843518c237cc44d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+U\+V\+Multiplier@{get\+Layer\+U\+V\+Multiplier}}
\index{get\+Layer\+U\+V\+Multiplier@{get\+Layer\+U\+V\+Multiplier}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+U\+V\+Multiplier()}{getLayerUVMultiplier()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Layer\+U\+V\+Multiplier (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index }\end{DoxyParamCaption}) const}



Get the layer UV multiplier. 

\begin{DoxyRemark}{Remarks}
This is derived from the texture world size. The base U\+Vs in the terrain vary from 0 to 1 and this multiplier is used (in a fixed-\/function texture coord scaling or a shader parameter) to translate it to the final value. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em index} & The layer index. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a46c0ebb19fd5feeda541f1c3e7995557}\label{class_ogre_1_1_terrain_a46c0ebb19fd5feeda541f1c3e7995557}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Texture\+Name@{get\+Layer\+Texture\+Name}}
\index{get\+Layer\+Texture\+Name@{get\+Layer\+Texture\+Name}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Texture\+Name()}{getLayerTextureName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+::get\+Layer\+Texture\+Name (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{layer\+Index,  }\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{sampler\+Index }\end{DoxyParamCaption}) const}



Get the name of the texture bound to a given index within a given layer. 

See the Layer\+Declaration for a list of sampelrs within a layer. 
\begin{DoxyParams}{Parameters}
{\em layer\+Index} & The layer index. \\
\hline
{\em sampler\+Index} & The sampler index within a layer \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_af1dc74d66c4f3867a484d09cf2063fbc}\label{class_ogre_1_1_terrain_af1dc74d66c4f3867a484d09cf2063fbc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Layer\+Texture\+Name@{set\+Layer\+Texture\+Name}}
\index{set\+Layer\+Texture\+Name@{set\+Layer\+Texture\+Name}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Layer\+Texture\+Name()}{setLayerTextureName()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Layer\+Texture\+Name (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{layer\+Index,  }\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{sampler\+Index,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{texture\+Name }\end{DoxyParamCaption})}



Set the name of the texture bound to a given index within a given layer. 

See the Layer\+Declaration for a list of sampelrs within a layer. 
\begin{DoxyParams}{Parameters}
{\em layer\+Index} & The layer index. \\
\hline
{\em sampler\+Index} & The sampler index within a layer \\
\hline
{\em texture\+Name} & The name of the texture to use \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a148549dc9a5d14725b5c44256638e8ad}\label{class_ogre_1_1_terrain_a148549dc9a5d14725b5c44256638e8ad}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Blend\+Map\+Size@{get\+Layer\+Blend\+Map\+Size}}
\index{get\+Layer\+Blend\+Map\+Size@{get\+Layer\+Blend\+Map\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Blend\+Map\+Size()}{getLayerBlendMapSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Layer\+Blend\+Map\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the requested size of the blend maps used to blend between layers for this terrain. 

Note that where hardware limits this, the actual blend maps may be lower resolution. This option is derived from \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} when the terrain is created. \mbox{\Hypertarget{class_ogre_1_1_terrain_ae0168de61d9cc2f640d081538ad4ded9}\label{class_ogre_1_1_terrain_ae0168de61d9cc2f640d081538ad4ded9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Lightmap\+Size@{get\+Lightmap\+Size}}
\index{get\+Lightmap\+Size@{get\+Lightmap\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Lightmap\+Size()}{getLightmapSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Lightmap\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the requested size of lightmap for this terrain. 

Note that where hardware limits this, the actual lightmap may be lower resolution. This option is derived from \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} when the terrain is created. \mbox{\Hypertarget{class_ogre_1_1_terrain_a84afe6275d74e7fbba6d853248d0294f}\label{class_ogre_1_1_terrain_a84afe6275d74e7fbba6d853248d0294f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Lightmap@{get\+Lightmap}}
\index{get\+Lightmap@{get\+Lightmap}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Lightmap()}{getLightmap()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr}\& Ogre\+::\+Terrain\+::get\+Lightmap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get access to the lightmap, if enabled (as requested by the material generator) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a3740cb23e839b4a98e60c18b559d1309}\label{class_ogre_1_1_terrain_a3740cb23e839b4a98e60c18b559d1309}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Composite\+Map\+Size@{get\+Composite\+Map\+Size}}
\index{get\+Composite\+Map\+Size@{get\+Composite\+Map\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Composite\+Map\+Size()}{getCompositeMapSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Composite\+Map\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the requested size of composite map for this terrain. 

Note that where hardware limits this, the actual texture may be lower resolution. This option is derived from \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} when the terrain is created. \mbox{\Hypertarget{class_ogre_1_1_terrain_a63e79bde330711e62f5d1e89691ffc3f}\label{class_ogre_1_1_terrain_a63e79bde330711e62f5d1e89691ffc3f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Composite\+Map@{get\+Composite\+Map}}
\index{get\+Composite\+Map@{get\+Composite\+Map}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Composite\+Map()}{getCompositeMap()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr}\& Ogre\+::\+Terrain\+::get\+Composite\+Map (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get access to the composite map, if enabled (as requested by the material generator) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a80cab6f78d3d9463f2d41ef1967ee713}\label{class_ogre_1_1_terrain_a80cab6f78d3d9463f2d41ef1967ee713}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Position@{get\+Position}}
\index{get\+Position@{get\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Position()}{getPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vector3}{Vector3}\& Ogre\+::\+Terrain\+::get\+Position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the world position of the terrain centre. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aa87ddbb08f493d0901594fe6e3f4cafe}\label{class_ogre_1_1_terrain_aa87ddbb08f493d0901594fe6e3f4cafe}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Position@{set\+Position}}
\index{set\+Position@{set\+Position}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Position()}{setPosition()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Position (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{pos }\end{DoxyParamCaption})}



Set the position of the terrain centre in world coordinates. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a074fb4e8695c695cd63675cdd65bd509}\label{class_ogre_1_1_terrain_a074fb4e8695c695cd63675cdd65bd509}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Root\+Scene\+Node@{\+\_\+get\+Root\+Scene\+Node}}
\index{\+\_\+get\+Root\+Scene\+Node@{\+\_\+get\+Root\+Scene\+Node}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Root\+Scene\+Node()}{\_getRootSceneNode()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node}$\ast$ Ogre\+::\+Terrain\+::\+\_\+get\+Root\+Scene\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the root scene node for the terrain (internal use only) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aab69f3dead87b53b84784c7d7d325f68}\label{class_ogre_1_1_terrain_aab69f3dead87b53b84784c7d7d325f68}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!dirty@{dirty}}
\index{dirty@{dirty}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{dirty()}{dirty()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::dirty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Mark the entire terrain as dirty. 

By marking a section of the terrain as dirty, you are stating that you have changed the height data within this rectangle. This rectangle will be merged with any existing outstanding changes. To finalise the changes, you must call \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update()}, \hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{update\+Geometry()}, or \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data()}. \mbox{\Hypertarget{class_ogre_1_1_terrain_a0a9de436fad8d6f3a95b1b78314fb736}\label{class_ogre_1_1_terrain_a0a9de436fad8d6f3a95b1b78314fb736}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!dirty\+Rect@{dirty\+Rect}}
\index{dirty\+Rect@{dirty\+Rect}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{dirty\+Rect()}{dirtyRect()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::dirty\+Rect (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect }\end{DoxyParamCaption})}



Mark a region of the terrain as dirty. 

By marking a section of the terrain as dirty, you are stating that you have changed the height data within this rectangle. This rectangle will be merged with any existing outstanding changes. To finalise the changes, you must call \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update()}, \hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{update\+Geometry()}, or \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data()}. 
\begin{DoxyParams}{Parameters}
{\em rect} & A rectangle expressed in vertices describing the dirty region; left $<$ right, top $<$ bottom, left \& top are inclusive, right \& bottom exclusive \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aa40d40d6f3de43fa0651079673145b95}\label{class_ogre_1_1_terrain_aa40d40d6f3de43fa0651079673145b95}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+dirty\+Composite\+Map\+Rect@{\+\_\+dirty\+Composite\+Map\+Rect}}
\index{\+\_\+dirty\+Composite\+Map\+Rect@{\+\_\+dirty\+Composite\+Map\+Rect}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+dirty\+Composite\+Map\+Rect()}{\_dirtyCompositeMapRect()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+dirty\+Composite\+Map\+Rect (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect }\end{DoxyParamCaption})}



Mark a region of the terrain composite map as dirty. 

\begin{DoxyRemark}{Remarks}
You don\textquotesingle{}t usually need to call this directly, it is inferred from changing the other data on the terrain. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a0852e0efabe0cbaf49277dbb261a5490}\label{class_ogre_1_1_terrain_a0852e0efabe0cbaf49277dbb261a5490}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!dirty\+Lightmap\+Rect@{dirty\+Lightmap\+Rect}}
\index{dirty\+Lightmap\+Rect@{dirty\+Lightmap\+Rect}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{dirty\+Lightmap\+Rect()}{dirtyLightmapRect()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::dirty\+Lightmap\+Rect (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect }\end{DoxyParamCaption})}



Mark a region of the lightmap as dirty. 

\begin{DoxyRemark}{Remarks}
You only need to call this if you need to tell the terrain to update the lightmap data for some reason other than the terrain geometry has changed. Changing terrain geometry automatically dirties the correct lightmap areas. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
The lightmap won\textquotesingle{}t actually be updated until \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update()} or \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data()} is called. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a9e432dfa8261600759fb020c09c169a1}\label{class_ogre_1_1_terrain_a9e432dfa8261600759fb020c09c169a1}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!dirty\+Lightmap@{dirty\+Lightmap}}
\index{dirty\+Lightmap@{dirty\+Lightmap}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{dirty\+Lightmap()}{dirtyLightmap()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::dirty\+Lightmap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Mark a the entire lightmap as dirty. 

\begin{DoxyRemark}{Remarks}
You only need to call this if you need to tell the terrain to update the lightmap data for some reason other than the terrain geometry has changed. Changing terrain geometry automatically dirties the correct lightmap areas. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
The lightmap won\textquotesingle{}t actually be updated until \hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{update()} or \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data()} is called. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}\label{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update@{update}}
\index{update@{update}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update()}{update()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update (\begin{DoxyParamCaption}\item[{bool}]{synchronous = {\ttfamily false} }\end{DoxyParamCaption})}



Trigger the update process for the terrain. 

\begin{DoxyRemark}{Remarks}
Updating the terrain will process any dirty sections of the terrain. This may affect many things\+: 
\begin{DoxyEnumerate}
\item The terrain geometry 
\item The terrain error metrics which determine L\+OD transitions 
\item The terrain normal map, if present 
\item The terrain lighting map, if present 
\item The terrain composite map, if present 
\end{DoxyEnumerate}If threading is enabled, only item 1 (the geometry) will be updated synchronously, ie will be fully up to date when this method returns. The other elements are more expensive to compute, and will be queued for processing in a background thread, in the order shown above. As these updates complete, the effects will be shown.
\end{DoxyRemark}
You can also separate the timing of updating the geometry, L\+OD and the lighting information if you want, by calling \hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{update\+Geometry()} and \hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{update\+Derived\+Data()} separately. 
\begin{DoxyParams}{Parameters}
{\em synchronous} & If true, all updates will happen immediately and not in a separate thread. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}\label{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update\+Geometry@{update\+Geometry}}
\index{update\+Geometry@{update\+Geometry}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update\+Geometry()}{updateGeometry()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update\+Geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Performs an update on the terrain geometry based on the dirty region. 

\begin{DoxyRemark}{Remarks}
\hyperlink{class_ogre_1_1_terrain}{Terrain} geometry will be updated when this method returns. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a6c319d29b618e68b9a8d6dd3b0652dcb}\label{class_ogre_1_1_terrain_a6c319d29b618e68b9a8d6dd3b0652dcb}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update\+Geometry\+Without\+Notify\+Neighbours@{update\+Geometry\+Without\+Notify\+Neighbours}}
\index{update\+Geometry\+Without\+Notify\+Neighbours@{update\+Geometry\+Without\+Notify\+Neighbours}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update\+Geometry\+Without\+Notify\+Neighbours()}{updateGeometryWithoutNotifyNeighbours()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update\+Geometry\+Without\+Notify\+Neighbours (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Performs an update on the terrain geometry based on the dirty region. 

\begin{DoxyRemark}{Remarks}
\hyperlink{class_ogre_1_1_terrain}{Terrain} geometry will be updated when this method returns, and no neighbours will be notified. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}\label{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update\+Derived\+Data@{update\+Derived\+Data}}
\index{update\+Derived\+Data@{update\+Derived\+Data}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update\+Derived\+Data()}{updateDerivedData()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update\+Derived\+Data (\begin{DoxyParamCaption}\item[{bool}]{synchronous = {\ttfamily false},  }\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{type\+Mask = {\ttfamily 0xFF} }\end{DoxyParamCaption})}



Updates derived data for the terrain (L\+OD, lighting) to reflect changed height data, in a separate thread if threading is enabled (O\+G\+R\+E\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+S\+U\+P\+P\+O\+RT). 

If threading is enabled, on return from this method the derived data will not necessarily be updated immediately, the calculation may be done in the background. Only one update will run in the background at once. This derived data can typically survive being out of sync for a few frames which is why it is not done synchronously 
\begin{DoxyParams}{Parameters}
{\em synchronous} & If true, the update will happen immediately and not in a separate thread. \\
\hline
{\em type\+Mask} & Mask indicating the types of data we should generate \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a84b12bda4d87a9145c5b131166275fd3}\label{class_ogre_1_1_terrain_a84b12bda4d87a9145c5b131166275fd3}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update\+Composite\+Map@{update\+Composite\+Map}}
\index{update\+Composite\+Map@{update\+Composite\+Map}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update\+Composite\+Map()}{updateCompositeMap()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update\+Composite\+Map (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Performs an update on the terrain composite map based on its dirty region. 

\begin{DoxyRemark}{Remarks}
Rather than calling this directly, call update\+Derived\+Data, which will also call it after the other derived data has been updated (there is no point updating the composite map until lighting has been updated). However the blend maps may call this directly when only the blending information has been updated. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a5d4659018c697f0a2fae1192f81ede4a}\label{class_ogre_1_1_terrain_a5d4659018c697f0a2fae1192f81ede4a}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!update\+Composite\+Map\+With\+Delay@{update\+Composite\+Map\+With\+Delay}}
\index{update\+Composite\+Map\+With\+Delay@{update\+Composite\+Map\+With\+Delay}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{update\+Composite\+Map\+With\+Delay()}{updateCompositeMapWithDelay()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::update\+Composite\+Map\+With\+Delay (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{delay = {\ttfamily 2} }\end{DoxyParamCaption})}



Performs an update on the terrain composite map based on its dirty region, but only at a maximum frequency. 

\begin{DoxyRemark}{Remarks}
Rather than calling this directly, call update\+Derived\+Data, which will also call it after the other derived data has been updated (there is no point updating the composite map until lighting has been updated). However the blend maps may call this directly when only the blending information has been updated. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This method will log the request for an update, but won\textquotesingle{}t do it just yet unless there are no further requests in the next \textquotesingle{}delay\textquotesingle{} seconds. This means you can call it all the time but only pick up changes in quiet times. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a607e4aebdee75f7d26c279607d819976}\label{class_ogre_1_1_terrain_a607e4aebdee75f7d26c279607d819976}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Skirt\+Size@{get\+Skirt\+Size}}
\index{get\+Skirt\+Size@{get\+Skirt\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Skirt\+Size()}{getSkirtSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Skirt\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



The default size of \textquotesingle{}skirts\textquotesingle{} used to hide terrain cracks (default 10, set for new \hyperlink{class_ogre_1_1_terrain}{Terrain} using \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options}) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a2edb50f75fb20e41b169c86cbffceadc}\label{class_ogre_1_1_terrain_a2edb50f75fb20e41b169c86cbffceadc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Num\+Lod\+Levels@{get\+Num\+Lod\+Levels}}
\index{get\+Num\+Lod\+Levels@{get\+Num\+Lod\+Levels}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Num\+Lod\+Levels()}{getNumLodLevels()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Num\+Lod\+Levels (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the total number of L\+OD levels in the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aeb53dbed1ad2cb6cb22cefefa8039c68}\label{class_ogre_1_1_terrain_aeb53dbed1ad2cb6cb22cefefa8039c68}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Num\+Lod\+Levels\+Per\+Leaf@{get\+Num\+Lod\+Levels\+Per\+Leaf}}
\index{get\+Num\+Lod\+Levels\+Per\+Leaf@{get\+Num\+Lod\+Levels\+Per\+Leaf}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Num\+Lod\+Levels\+Per\+Leaf()}{getNumLodLevelsPerLeaf()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Num\+Lod\+Levels\+Per\+Leaf (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of L\+OD levels in a leaf of the terrain quadtree. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a57b254a77b1c0fe87a34366ab08db4f3}\label{class_ogre_1_1_terrain_a57b254a77b1c0fe87a34366ab08db4f3}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!calculate\+Height\+Deltas@{calculate\+Height\+Deltas}}
\index{calculate\+Height\+Deltas@{calculate\+Height\+Deltas}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{calculate\+Height\+Deltas()}{calculateHeightDeltas()}}
{\footnotesize\ttfamily \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} Ogre\+::\+Terrain\+::calculate\+Height\+Deltas (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect }\end{DoxyParamCaption})}



Calculate (or recalculate) the delta values of heights between a vertex in its recorded position, and the place it will end up in the L\+OD in which it is removed. 


\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area in which heights have altered \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Rectangle describing the area which was updated (may be wider than the input rectangle) 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a1da607007f9aa988b80df8d3036e187e}\label{class_ogre_1_1_terrain_a1da607007f9aa988b80df8d3036e187e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!finalise\+Height\+Deltas@{finalise\+Height\+Deltas}}
\index{finalise\+Height\+Deltas@{finalise\+Height\+Deltas}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{finalise\+Height\+Deltas()}{finaliseHeightDeltas()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::finalise\+Height\+Deltas (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{bool}]{cpu\+Data }\end{DoxyParamCaption})}



Finalise the height deltas. 

Calculated height deltas are kept in a separate calculation field to make them safe to perform in a background thread. This call promotes those calculations to the runtime values, and must be called in the main thread. 
\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area to finalise \\
\hline
{\em cpu\+Data} & When updating vertex data, update the C\+PU copy (background) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_adedd57624fe8d44f0b8bfaf00f5eb5bc}\label{class_ogre_1_1_terrain_adedd57624fe8d44f0b8bfaf00f5eb5bc}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!calculate\+Normals@{calculate\+Normals}}
\index{calculate\+Normals@{calculate\+Normals}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{calculate\+Normals()}{calculateNormals()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box}$\ast$ Ogre\+::\+Terrain\+::calculate\+Normals (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{out\+Final\+Rect }\end{DoxyParamCaption})}



Calculate (or recalculate) the normals on the terrain. 


\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area of heights that were changed \\
\hline
{\em out\+Final\+Rect} & Output rectangle describing the area updated \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to a \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} full of normals (caller responsible for deletion) 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a19862c05e3b50f4464a41e48c12c5245}\label{class_ogre_1_1_terrain_a19862c05e3b50f4464a41e48c12c5245}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!finalise\+Normals@{finalise\+Normals}}
\index{finalise\+Normals@{finalise\+Normals}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{finalise\+Normals()}{finaliseNormals()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::finalise\+Normals (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{\hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$}]{normals\+Box }\end{DoxyParamCaption})}



Finalise the normals. 

Calculated normals are kept in a separate calculation area to make them safe to perform in a background thread. This call promotes those calculations to the runtime values, and must be called in the main thread. 
\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area to finalise \\
\hline
{\em normals\+Box} & Pointer to a \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} full of normals \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a65b20498fb2fb418f87bab3b29fbd409}\label{class_ogre_1_1_terrain_a65b20498fb2fb418f87bab3b29fbd409}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!calculate\+Lightmap@{calculate\+Lightmap}}
\index{calculate\+Lightmap@{calculate\+Lightmap}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{calculate\+Lightmap()}{calculateLightmap()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box}$\ast$ Ogre\+::\+Terrain\+::calculate\+Lightmap (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{extra\+Target\+Rect,  }\item[{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{out\+Final\+Rect }\end{DoxyParamCaption})}



Calculate (or recalculate) the terrain lightmap. 


\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area of heights that were changed \\
\hline
{\em extra\+Target\+Rect} & Rectangle describing a target area of the terrain that needs to be calculated additionally (e.\+g. from a neighbour) \\
\hline
{\em out\+Final\+Rect} & Output rectangle describing the area updated in the lightmap \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to a \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} full of lighting data (caller responsible for deletion) 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a36a0e738c270ab2d804446f3e93ae651}\label{class_ogre_1_1_terrain_a36a0e738c270ab2d804446f3e93ae651}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!finalise\+Lightmap@{finalise\+Lightmap}}
\index{finalise\+Lightmap@{finalise\+Lightmap}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{finalise\+Lightmap()}{finaliseLightmap()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::finalise\+Lightmap (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{\hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} $\ast$}]{lightmap\+Box }\end{DoxyParamCaption})}



Finalise the lightmap. 

Calculating lightmaps is kept in a separate calculation area to make it safe to perform in a background thread. This call promotes those calculations to the runtime values, and must be called in the main thread. 
\begin{DoxyParams}{Parameters}
{\em rect} & Rectangle describing the area to finalise \\
\hline
{\em lightmap\+Box} & Pointer to a \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} full of normals \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_afe71e5b01aa9db756587fadb27eb2a83}\label{class_ogre_1_1_terrain_afe71e5b01aa9db756587fadb27eb2a83}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Resolution\+At\+Lod@{get\+Resolution\+At\+Lod}}
\index{get\+Resolution\+At\+Lod@{get\+Resolution\+At\+Lod}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Resolution\+At\+Lod()}{getResolutionAtLod()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Resolution\+At\+Lod (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{lod\+Level }\end{DoxyParamCaption}) const}



Gets the resolution of the entire terrain (down one edge) at a given L\+OD level. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a003259cd78387d45163f03ccace647bb}\label{class_ogre_1_1_terrain_a003259cd78387d45163f03ccace647bb}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!ray\+Intersects@{ray\+Intersects}}
\index{ray\+Intersects@{ray\+Intersects}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{ray\+Intersects()}{rayIntersects()}}
{\footnotesize\ttfamily std\+::pair$<$bool, \hyperlink{class_ogre_1_1_vector3}{Vector3}$>$ Ogre\+::\+Terrain\+::ray\+Intersects (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_ray}{Ray} \&}]{ray,  }\item[{bool}]{cascade\+To\+Neighbours = {\ttfamily false},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{distance\+Limit = {\ttfamily 0} }\end{DoxyParamCaption})}



Test for intersection of a given ray with the terrain. 

If the ray hits the terrain, the point of intersection is returned. 
\begin{DoxyParams}{Parameters}
{\em ray} & The ray to test for intersection \\
\hline
{\em cascade\+To\+Neighbours} & Whether the ray will be projected onto neighbours if no intersection is found \\
\hline
{\em distance\+Limit} & The distance from the ray origin at which we will stop looking, 0 indicates no limit \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pair which contains whether the ray hit the terrain and, if so, where. 
\end{DoxyReturn}
\begin{DoxyRemark}{Remarks}
This can be called from any thread as long as no parallel write to the heightmap data occurs. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a8cf9f00dcd292d3cba4662006d520a8b}\label{class_ogre_1_1_terrain_a8cf9f00dcd292d3cba4662006d520a8b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+A\+A\+BB@{get\+A\+A\+BB}}
\index{get\+A\+A\+BB@{get\+A\+A\+BB}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+A\+A\+B\+B()}{getAABB()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box}\& Ogre\+::\+Terrain\+::get\+A\+A\+BB (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the A\+A\+BB (local coords) of the entire terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_ad0f38e00e35fe85b04ed010a27433341}\label{class_ogre_1_1_terrain_ad0f38e00e35fe85b04ed010a27433341}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+World\+A\+A\+BB@{get\+World\+A\+A\+BB}}
\index{get\+World\+A\+A\+BB@{get\+World\+A\+A\+BB}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+World\+A\+A\+B\+B()}{getWorldAABB()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} Ogre\+::\+Terrain\+::get\+World\+A\+A\+BB (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the A\+A\+BB (world coords) of the entire terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a2511163a9389cff84b1dfecdd863b381}\label{class_ogre_1_1_terrain_a2511163a9389cff84b1dfecdd863b381}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Min\+Height@{get\+Min\+Height}}
\index{get\+Min\+Height@{get\+Min\+Height}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Min\+Height()}{getMinHeight()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Min\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the minimum height of the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a8dc48d60a3f7e6a152b6757baf32c513}\label{class_ogre_1_1_terrain_a8dc48d60a3f7e6a152b6757baf32c513}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Max\+Height@{get\+Max\+Height}}
\index{get\+Max\+Height@{get\+Max\+Height}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Max\+Height()}{getMaxHeight()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Max\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the maximum height of the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aa250d15148f1cbf87777ff36a628da9e}\label{class_ogre_1_1_terrain_aa250d15148f1cbf87777ff36a628da9e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Bounding\+Radius@{get\+Bounding\+Radius}}
\index{get\+Bounding\+Radius@{get\+Bounding\+Radius}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Bounding\+Radius()}{getBoundingRadius()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+::get\+Bounding\+Radius (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the bounding radius of the entire terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a4bf919d04eb3b08187b91808ee22363f}\label{class_ogre_1_1_terrain_a4bf919d04eb3b08187b91808ee22363f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Material@{get\+Material}}
\index{get\+Material@{get\+Material}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Material()}{getMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+Terrain\+::get\+Material (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the material being used for the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a8d9657aa29e6e4c253f0a6e09d212789}\label{class_ogre_1_1_terrain_a8d9657aa29e6e4c253f0a6e09d212789}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Material@{\+\_\+get\+Material}}
\index{\+\_\+get\+Material@{\+\_\+get\+Material}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Material()}{\_getMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+Terrain\+::\+\_\+get\+Material (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Internal getting of material. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_afed96292664c90c9e2707b934576fa74}\label{class_ogre_1_1_terrain_afed96292664c90c9e2707b934576fa74}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Composite\+Map\+Material@{get\+Composite\+Map\+Material}}
\index{get\+Composite\+Map\+Material@{get\+Composite\+Map\+Material}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Composite\+Map\+Material()}{getCompositeMapMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+Terrain\+::get\+Composite\+Map\+Material (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the material being used for the terrain composite map. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_af262cfa185a0d3659fb8fc5636d9b73c}\label{class_ogre_1_1_terrain_af262cfa185a0d3659fb8fc5636d9b73c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Composite\+Map\+Material@{\+\_\+get\+Composite\+Map\+Material}}
\index{\+\_\+get\+Composite\+Map\+Material@{\+\_\+get\+Composite\+Map\+Material}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Composite\+Map\+Material()}{\_getCompositeMapMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+Terrain\+::\+\_\+get\+Composite\+Map\+Material (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Internal getting of material for the terrain composite map. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a64e566b23cac679f6eb18f5cdd37b23b}\label{class_ogre_1_1_terrain_a64e566b23cac679f6eb18f5cdd37b23b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Material\+Name@{get\+Material\+Name}}
\index{get\+Material\+Name@{get\+Material\+Name}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Material\+Name()}{getMaterialName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+::get\+Material\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the name of the material being used for the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_ad9bd9a0fbdb32cb5571cca586f21e811}\label{class_ogre_1_1_terrain_ad9bd9a0fbdb32cb5571cca586f21e811}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!pre\+Find\+Visible\+Objects@{pre\+Find\+Visible\+Objects}}
\index{pre\+Find\+Visible\+Objects@{pre\+Find\+Visible\+Objects}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{pre\+Find\+Visible\+Objects()}{preFindVisibleObjects()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::pre\+Find\+Visible\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{source,  }\item[{\hyperlink{class_ogre_1_1_scene_manager_a51db39cc4fa15b28086a1793d42fc827}{Scene\+Manager\+::\+Illumination\+Render\+Stage}}]{irs,  }\item[{\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Overridden from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener}{Scene\+Manager\+::\+Listener}. 



Reimplemented from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_a2c0007528c775ca51c95fd5e7f7aa4db}{Ogre\+::\+Scene\+Manager\+::\+Listener}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_a09baa91af04f211ee9e8e8f60d9e6c39}\label{class_ogre_1_1_terrain_a09baa91af04f211ee9e8e8f60d9e6c39}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!scene\+Manager\+Destroyed@{scene\+Manager\+Destroyed}}
\index{scene\+Manager\+Destroyed@{scene\+Manager\+Destroyed}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{scene\+Manager\+Destroyed()}{sceneManagerDestroyed()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::scene\+Manager\+Destroyed (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{source }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Overridden from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener}{Scene\+Manager\+::\+Listener}. 



Reimplemented from \hyperlink{class_ogre_1_1_scene_manager_1_1_listener_a9d5463252458a8852b0011935e6f5bb5}{Ogre\+::\+Scene\+Manager\+::\+Listener}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_a85c8ed1f55d5cf5300e2ccc2d02ab2f5}\label{class_ogre_1_1_terrain_a85c8ed1f55d5cf5300e2ccc2d02ab2f5}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Render\+Queue\+Group@{get\+Render\+Queue\+Group}}
\index{get\+Render\+Queue\+Group@{get\+Render\+Queue\+Group}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Render\+Queue\+Group()}{getRenderQueueGroup()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Render\+Queue\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the render queue group that this terrain will be rendered into. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a9ff521bcc0fb0193d9105af627af5c0d}\label{class_ogre_1_1_terrain_a9ff521bcc0fb0193d9105af627af5c0d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Render\+Queue\+Group@{set\+Render\+Queue\+Group}}
\index{set\+Render\+Queue\+Group@{set\+Render\+Queue\+Group}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Render\+Queue\+Group()}{setRenderQueueGroup()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Render\+Queue\+Group (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{grp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the render queue group that this terrain will be rendered into. 

\begin{DoxyRemark}{Remarks}
The default is specified in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a124354ea9deb52eced5e1d5a75a2b996}\label{class_ogre_1_1_terrain_a124354ea9deb52eced5e1d5a75a2b996}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Visibility\+Flags@{get\+Visibility\+Flags}}
\index{get\+Visibility\+Flags@{get\+Visibility\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Visibility\+Flags()}{getVisibilityFlags()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::get\+Visibility\+Flags (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the visibility flags for this terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a03a3ea2ce4dba4e2948a6b9d1fc02566}\label{class_ogre_1_1_terrain_a03a3ea2ce4dba4e2948a6b9d1fc02566}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Visibility\+Flags@{set\+Visibility\+Flags}}
\index{set\+Visibility\+Flags@{set\+Visibility\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Visibility\+Flags()}{setVisibilityFlags()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Visibility\+Flags (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the visibility flags for this terrain. 

\begin{DoxyRemark}{Remarks}
The default is specified in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_abbfdc91237fe8c41297f4715e96b1a19}\label{class_ogre_1_1_terrain_abbfdc91237fe8c41297f4715e96b1a19}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Query\+Flags@{get\+Query\+Flags}}
\index{get\+Query\+Flags@{get\+Query\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Query\+Flags()}{getQueryFlags()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::get\+Query\+Flags (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the query flags for this terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a4b05d2eef470c736f23b6e3dbb5619d9}\label{class_ogre_1_1_terrain_a4b05d2eef470c736f23b6e3dbb5619d9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Query\+Flags@{set\+Query\+Flags}}
\index{set\+Query\+Flags@{set\+Query\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Query\+Flags()}{setQueryFlags()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Query\+Flags (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the query flags for this terrain. 

\begin{DoxyRemark}{Remarks}
The default is specified in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options} 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad7934e16e9ad7a0a272bb86d46c17b9e}\label{class_ogre_1_1_terrain_ad7934e16e9ad7a0a272bb86d46c17b9e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!add\+Query\+Flags@{add\+Query\+Flags}}
\index{add\+Query\+Flags@{add\+Query\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{add\+Query\+Flags()}{addQueryFlags()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::add\+Query\+Flags (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



As set\+Query\+Flags, except the flags passed as parameters are appended to the existing flags on this object. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aa0e26a4fd6e9897509bf7372388427ff}\label{class_ogre_1_1_terrain_aa0e26a4fd6e9897509bf7372388427ff}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!remove\+Query\+Flags@{remove\+Query\+Flags}}
\index{remove\+Query\+Flags@{remove\+Query\+Flags}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{remove\+Query\+Flags()}{removeQueryFlags()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::remove\+Query\+Flags (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a68d05f4414e020b6eed2c4f90888b6fd}\label{class_ogre_1_1_terrain_a68d05f4414e020b6eed2c4f90888b6fd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Blend\+Map@{get\+Layer\+Blend\+Map}}
\index{get\+Layer\+Blend\+Map@{get\+Layer\+Blend\+Map}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Blend\+Map()}{getLayerBlendMap()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Terrain\+Layer\+Blend\+Map}$\ast$ Ogre\+::\+Terrain\+::get\+Layer\+Blend\+Map (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{layer\+Index }\end{DoxyParamCaption})}



Retrieve the layer blending map for a given layer, which may be used to edit the blending information for that layer. 

\begin{DoxyNote}{Note}
You can only do this after the terrain has been loaded. You may edit the content of the blend layer in another thread, but you may only upload it in the main render thread. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em layer\+Index} & The layer index, which should be 1 or higher (since the bottom layer has no blending). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to the \hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Terrain\+Layer\+Blend\+Map} requested. The caller must not delete this instance, use free\+Temporary\+Resources if you want to save the memory after completing your editing. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_abea533df30a7cec072f08f527978c095}\label{class_ogre_1_1_terrain_abea533df30a7cec072f08f527978c095}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Blend\+Texture\+Index@{get\+Blend\+Texture\+Index}}
\index{get\+Blend\+Texture\+Index@{get\+Blend\+Texture\+Index}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Blend\+Texture\+Index()}{getBlendTextureIndex()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Blend\+Texture\+Index (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{layer\+Index }\end{DoxyParamCaption}) const}



Get the index of the blend texture that a given layer uses. 


\begin{DoxyParams}{Parameters}
{\em layer\+Index} & The layer index, must be $>$= 1 and less than the number of layers \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The index of the shared blend texture 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a9167eb4f73df66b86bc63a9aea34bb88}\label{class_ogre_1_1_terrain_a9167eb4f73df66b86bc63a9aea34bb88}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Blend\+Texture\+Count@{get\+Blend\+Texture\+Count}}
\index{get\+Blend\+Texture\+Count@{get\+Blend\+Texture\+Count}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Blend\+Texture\+Count()}{getBlendTextureCount()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Blend\+Texture\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the number of blend textures in use. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a2e76a05d836ae1924b44beb5686bf6f4}\label{class_ogre_1_1_terrain_a2e76a05d836ae1924b44beb5686bf6f4}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Blend\+Texture\+Count@{get\+Blend\+Texture\+Count}}
\index{get\+Blend\+Texture\+Count@{get\+Blend\+Texture\+Count}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Blend\+Texture\+Count()}{getBlendTextureCount()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::get\+Blend\+Texture\+Count (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{num\+Layers }\end{DoxyParamCaption}) const}



Get the number of blend textures needed for a given number of layers. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a36e0c227906b303200f67a8ca5822ba9}\label{class_ogre_1_1_terrain_a36e0c227906b303200f67a8ca5822ba9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Blend\+Texture\+Name@{get\+Blend\+Texture\+Name}}
\index{get\+Blend\+Texture\+Name@{get\+Blend\+Texture\+Name}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Blend\+Texture\+Name()}{getBlendTextureName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+::get\+Blend\+Texture\+Name (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{texture\+Index }\end{DoxyParamCaption}) const}



Get the name of the packed blend texture at a specific index. 


\begin{DoxyParams}{Parameters}
{\em texture\+Index} & This is the blend texture index, not the layer index (multiple layers will share a blend texture) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ac2b0283f89f542552c2e40e07899f95d}\label{class_ogre_1_1_terrain_ac2b0283f89f542552c2e40e07899f95d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Global\+Colour\+Map\+Enabled@{set\+Global\+Colour\+Map\+Enabled}}
\index{set\+Global\+Colour\+Map\+Enabled@{set\+Global\+Colour\+Map\+Enabled}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Global\+Colour\+Map\+Enabled()}{setGlobalColourMapEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Global\+Colour\+Map\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Set whether a global colour map is enabled. 

\begin{DoxyRemark}{Remarks}
A global colour map can add variation to your terrain and reduce the perceived tiling effect you might get in areas of continuous lighting and the same texture. The global colour map is only used when the material generator chooses to use it. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
You must only call this from the main render thread 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em enabled} & Whether the global colour map is enabled or not \\
\hline
{\em size} & The resolution of the colour map. A value of zero means \textquotesingle{}no change\textquotesingle{} and the default is set in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aa55c99add54accbfe6542f53b1a34c12}\label{class_ogre_1_1_terrain_aa55c99add54accbfe6542f53b1a34c12}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Global\+Colour\+Map\+Enabled@{get\+Global\+Colour\+Map\+Enabled}}
\index{get\+Global\+Colour\+Map\+Enabled@{get\+Global\+Colour\+Map\+Enabled}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Global\+Colour\+Map\+Enabled()}{getGlobalColourMapEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::get\+Global\+Colour\+Map\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get whether a global colour map is enabled on this terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_acd720425368a1c9e9152c01da3e3c3cd}\label{class_ogre_1_1_terrain_acd720425368a1c9e9152c01da3e3c3cd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Global\+Colour\+Map\+Size@{get\+Global\+Colour\+Map\+Size}}
\index{get\+Global\+Colour\+Map\+Size@{get\+Global\+Colour\+Map\+Size}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Global\+Colour\+Map\+Size()}{getGlobalColourMapSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+Global\+Colour\+Map\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the size of the global colour map (if used) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a2e0f304bd4dc2a25742a4ca1a35641d4}\label{class_ogre_1_1_terrain_a2e0f304bd4dc2a25742a4ca1a35641d4}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Global\+Colour\+Map@{get\+Global\+Colour\+Map}}
\index{get\+Global\+Colour\+Map@{get\+Global\+Colour\+Map}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Global\+Colour\+Map()}{getGlobalColourMap()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr}\& Ogre\+::\+Terrain\+::get\+Global\+Colour\+Map (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get access to the global colour map, if enabled. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aff2c1091b6355257deabcae1755adec9}\label{class_ogre_1_1_terrain_aff2c1091b6355257deabcae1755adec9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!widen\+Rect\+By\+Vector@{widen\+Rect\+By\+Vector}}
\index{widen\+Rect\+By\+Vector@{widen\+Rect\+By\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{widen\+Rect\+By\+Vector()}{widenRectByVector()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::widen\+Rect\+By\+Vector (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{vec,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{in\+Rect,  }\item[{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{out\+Rect }\end{DoxyParamCaption})}



Widen a rectangular area of terrain to take into account an extrusion vector. 


\begin{DoxyParams}{Parameters}
{\em vec} & A vector in world space \\
\hline
{\em in\+Rect} & Input rectangle \\
\hline
{\em out\+Rect} & Output rectangle \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a19739da0efce18871375737421846f1c}\label{class_ogre_1_1_terrain_a19739da0efce18871375737421846f1c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!widen\+Rect\+By\+Vector@{widen\+Rect\+By\+Vector}}
\index{widen\+Rect\+By\+Vector@{widen\+Rect\+By\+Vector}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{widen\+Rect\+By\+Vector()}{widenRectByVector()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::widen\+Rect\+By\+Vector (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{vec,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{in\+Rect,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{min\+Height,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{max\+Height,  }\item[{\hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{out\+Rect }\end{DoxyParamCaption})}



Widen a rectangular area of terrain to take into account an extrusion vector, but specify the min / max heights to extrude manually. 


\begin{DoxyParams}{Parameters}
{\em vec} & A vector in world space \\
\hline
{\em in\+Rect} & Input rectangle \\
\hline
{\em min\+Height,max\+Height} & The extents of the height to extrude \\
\hline
{\em out\+Rect} & Output rectangle \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a4ee732f95cf2b3c4aacb709db48fad1e}\label{class_ogre_1_1_terrain_a4ee732f95cf2b3c4aacb709db48fad1e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!free\+Temporary\+Resources@{free\+Temporary\+Resources}}
\index{free\+Temporary\+Resources@{free\+Temporary\+Resources}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{free\+Temporary\+Resources()}{freeTemporaryResources()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::free\+Temporary\+Resources (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Free as many resources as possible for optimal run-\/time memory use. 

\begin{DoxyRemark}{Remarks}
This class keeps some temporary storage around in order to make certain actions (such as editing) possible more quickly. Calling this method will cause as many of those resources as possible to be freed. You might want to do this for example when you are finished editing a particular terrain and want to have optimal runtime efficiency. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a605043a30befb62e5fad16df455a2b6e}\label{class_ogre_1_1_terrain_a605043a30befb62e5fad16df455a2b6e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Blend\+Texture@{get\+Layer\+Blend\+Texture}}
\index{get\+Layer\+Blend\+Texture@{get\+Layer\+Blend\+Texture}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Blend\+Texture()}{getLayerBlendTexture()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr}\& Ogre\+::\+Terrain\+::get\+Layer\+Blend\+Texture (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{index }\end{DoxyParamCaption}) const}



Get a blend texture with a given index. 


\begin{DoxyParams}{Parameters}
{\em index} & The blend texture index (note\+: not layer index; derive the texture index from get\+Layer\+Blend\+Texture\+Index) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a6e4ca16459f48c1b25a327250898aed5}\label{class_ogre_1_1_terrain_a6e4ca16459f48c1b25a327250898aed5}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Layer\+Blend\+Texture\+Index@{get\+Layer\+Blend\+Texture\+Index}}
\index{get\+Layer\+Blend\+Texture\+Index@{get\+Layer\+Blend\+Texture\+Index}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Layer\+Blend\+Texture\+Index()}{getLayerBlendTextureIndex()}}
{\footnotesize\ttfamily std\+::pair$<$\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8},\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}$>$ Ogre\+::\+Terrain\+::get\+Layer\+Blend\+Texture\+Index (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{layer\+Index }\end{DoxyParamCaption}) const}



Get the texture index and colour channel of the blend information for a given layer. 


\begin{DoxyParams}{Parameters}
{\em layer\+Index} & The index of the layer (1 or higher, layer 0 has no blend data) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pair in which the first value is the texture index, and the second value is the colour channel (R\+G\+BA) 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a2a65fb835fe22a425107ce43edf43219}\label{class_ogre_1_1_terrain_a2a65fb835fe22a425107ce43edf43219}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+set\+Morph\+Required@{\+\_\+set\+Morph\+Required}}
\index{\+\_\+set\+Morph\+Required@{\+\_\+set\+Morph\+Required}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+set\+Morph\+Required()}{\_setMorphRequired()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+set\+Morph\+Required (\begin{DoxyParamCaption}\item[{bool}]{morph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Request internal implementation options for the terrain material to use, in this case vertex morphing information. 

The \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} should call this method to specify the options it would like to use when creating a material. Not all the data is guaranteed to be up to date on return from this method -\/ for example som maps may be generated in the background. However, on return from this method all the features that are requested will be referenceable by materials, the data may just take a few frames to be fully populated. 
\begin{DoxyParams}{Parameters}
{\em morph} & Whether L\+OD morphing information is required to be calculated \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a5c7d3147f12a6765dd39d7eb69587df7}\label{class_ogre_1_1_terrain_a5c7d3147f12a6765dd39d7eb69587df7}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Morph\+Required@{\+\_\+get\+Morph\+Required}}
\index{\+\_\+get\+Morph\+Required@{\+\_\+get\+Morph\+Required}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Morph\+Required()}{\_getMorphRequired()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::\+\_\+get\+Morph\+Required (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get whether L\+OD morphing is needed. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a3dba1853267506fed228c02ea8ecfe16}\label{class_ogre_1_1_terrain_a3dba1853267506fed228c02ea8ecfe16}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+set\+Normal\+Map\+Required@{\+\_\+set\+Normal\+Map\+Required}}
\index{\+\_\+set\+Normal\+Map\+Required@{\+\_\+set\+Normal\+Map\+Required}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+set\+Normal\+Map\+Required()}{\_setNormalMapRequired()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+set\+Normal\+Map\+Required (\begin{DoxyParamCaption}\item[{bool}]{normal\+Map }\end{DoxyParamCaption})}



Request internal implementation options for the terrain material to use, in this case a terrain-\/wide normal map. 

The \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} should call this method to specify the options it would like to use when creating a material. Not all the data is guaranteed to be up to date on return from this method -\/ for example some maps may be generated in the background. However, on return from this method all the features that are requested will be referenceable by materials, the data may just take a few frames to be fully populated. 
\begin{DoxyParams}{Parameters}
{\em normal\+Map} & Whether a terrain-\/wide normal map is requested. This is usually mutually exclusive with the lightmap option. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a915121f91285f370bd1a01842991ae03}\label{class_ogre_1_1_terrain_a915121f91285f370bd1a01842991ae03}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+set\+Light\+Map\+Required@{\+\_\+set\+Light\+Map\+Required}}
\index{\+\_\+set\+Light\+Map\+Required@{\+\_\+set\+Light\+Map\+Required}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+set\+Light\+Map\+Required()}{\_setLightMapRequired()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+set\+Light\+Map\+Required (\begin{DoxyParamCaption}\item[{bool}]{light\+Map,  }\item[{bool}]{shadows\+Only = {\ttfamily false} }\end{DoxyParamCaption})}



Request internal implementation options for the terrain material to use, in this case a terrain-\/wide normal map. 

The \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} should call this method to specify the options it would like to use when creating a material. Not all the data is guaranteed to be up to date on return from this method -\/ for example some maps may be generated in the background. However, on return from this method all the features that are requested will be referenceable by materials, the data may just take a few frames to be fully populated. 
\begin{DoxyParams}{Parameters}
{\em light\+Map} & Whether a terrain-\/wide lightmap including precalculated lighting is required (light direction in \hyperlink{class_ogre_1_1_terrain_global_options}{Terrain\+Global\+Options}) \\
\hline
{\em shadows\+Only} & If true, the lightmap contains only shadows, no directional lighting intensity \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a10b9f303b81585c1b51d0c273f03a5dd}\label{class_ogre_1_1_terrain_a10b9f303b81585c1b51d0c273f03a5dd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+set\+Composite\+Map\+Required@{\+\_\+set\+Composite\+Map\+Required}}
\index{\+\_\+set\+Composite\+Map\+Required@{\+\_\+set\+Composite\+Map\+Required}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+set\+Composite\+Map\+Required()}{\_setCompositeMapRequired()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+set\+Composite\+Map\+Required (\begin{DoxyParamCaption}\item[{bool}]{composite\+Map }\end{DoxyParamCaption})}



Request internal implementation options for the terrain material to use, in this case a terrain-\/wide composite map. 

The \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} should call this method to specify the options it would like to use when creating a material. Not all the data is guaranteed to be up to date on return from this method -\/ for example some maps may be generated in the background. However, on return from this method all the features that are requested will be referenceable by materials, the data may just take a few frames to be fully populated. 
\begin{DoxyParams}{Parameters}
{\em composite\+Map} & Whether a terrain-\/wide composite map is needed. A composite map is a texture with all of the blending and lighting baked in, such that at distance this texture can be used as an approximation of the multi-\/layer blended material. It is actually up to the material generator to render this composite map, because obviously precisely what it looks like depends on what the main material looks like. For this reason, the composite map is one piece of derived terrain data that is always calculated in the render thread, and usually on the G\+PU. It is expected that if this option is requested, the material generator will use it to construct distant L\+OD techniques. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a3b379afd3348efd5c8e5a87f0b2d0729}\label{class_ogre_1_1_terrain_a3b379afd3348efd5c8e5a87f0b2d0729}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+get\+Use\+Vertex\+Compression@{\+\_\+get\+Use\+Vertex\+Compression}}
\index{\+\_\+get\+Use\+Vertex\+Compression@{\+\_\+get\+Use\+Vertex\+Compression}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+get\+Use\+Vertex\+Compression()}{\_getUseVertexCompression()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::\+\_\+get\+Use\+Vertex\+Compression (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Whether we\textquotesingle{}re using vertex compression or not. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a22196f59f8f761e7fc4bea11db488252}\label{class_ogre_1_1_terrain_a22196f59f8f761e7fc4bea11db488252}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!can\+Handle\+Request@{can\+Handle\+Request}}
\index{can\+Handle\+Request@{can\+Handle\+Request}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{can\+Handle\+Request()}{canHandleRequest()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::can\+Handle\+Request (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_work_queue_1_1_request}{Work\+Queue\+::\+Request} $\ast$}]{req,  }\item[{const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$}]{srcQ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\hyperlink{class_ogre_1_1_work_queue_1_1_request_handler}{Work\+Queue\+::\+Request\+Handler} override. 



Reimplemented from \hyperlink{class_ogre_1_1_work_queue_1_1_request_handler_adf4a5093c7b789352a0a44629490bc87}{Ogre\+::\+Work\+Queue\+::\+Request\+Handler}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_a00a3600acc9fb758f8890f2c0877f62e}\label{class_ogre_1_1_terrain_a00a3600acc9fb758f8890f2c0877f62e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!handle\+Request@{handle\+Request}}
\index{handle\+Request@{handle\+Request}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{handle\+Request()}{handleRequest()}}
{\footnotesize\ttfamily \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response}$\ast$ Ogre\+::\+Terrain\+::handle\+Request (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_work_queue_1_1_request}{Work\+Queue\+::\+Request} $\ast$}]{req,  }\item[{const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$}]{srcQ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\hyperlink{class_ogre_1_1_work_queue_1_1_request_handler}{Work\+Queue\+::\+Request\+Handler} override. 



Implements \hyperlink{class_ogre_1_1_work_queue_1_1_request_handler_a1c412e904f71b9dec519c4aa1b5ceead}{Ogre\+::\+Work\+Queue\+::\+Request\+Handler}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_a3e3d8150704d279630a3a125b0439138}\label{class_ogre_1_1_terrain_a3e3d8150704d279630a3a125b0439138}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!can\+Handle\+Response@{can\+Handle\+Response}}
\index{can\+Handle\+Response@{can\+Handle\+Response}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{can\+Handle\+Response()}{canHandleResponse()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::can\+Handle\+Response (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$}]{res,  }\item[{const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$}]{srcQ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\hyperlink{class_ogre_1_1_work_queue_1_1_response_handler}{Work\+Queue\+::\+Response\+Handler} override. 



Reimplemented from \hyperlink{class_ogre_1_1_work_queue_1_1_response_handler_a7a2fabae7f92bed384f100526055a899}{Ogre\+::\+Work\+Queue\+::\+Response\+Handler}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_ad963dbee0f58e887e05c982385fb9799}\label{class_ogre_1_1_terrain_ad963dbee0f58e887e05c982385fb9799}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!handle\+Response@{handle\+Response}}
\index{handle\+Response@{handle\+Response}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{handle\+Response()}{handleResponse()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::handle\+Response (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$}]{res,  }\item[{const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$}]{srcQ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\hyperlink{class_ogre_1_1_work_queue_1_1_response_handler}{Work\+Queue\+::\+Response\+Handler} override. 



Implements \hyperlink{class_ogre_1_1_work_queue_1_1_response_handler_a8fab0334551e482042df078a5945f5de}{Ogre\+::\+Work\+Queue\+::\+Response\+Handler}.

\mbox{\Hypertarget{class_ogre_1_1_terrain_a584b511e44e1c33c387987187446353a}\label{class_ogre_1_1_terrain_a584b511e44e1c33c387987187446353a}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!handle\+Generate\+Material\+Response@{handle\+Generate\+Material\+Response}}
\index{handle\+Generate\+Material\+Response@{handle\+Generate\+Material\+Response}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{handle\+Generate\+Material\+Response()}{handleGenerateMaterialResponse()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::handle\+Generate\+Material\+Response (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$}]{res,  }\item[{const \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} $\ast$}]{srcQ }\end{DoxyParamCaption})}



Handler for Generate\+Material. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aca2087cd57d5c80ccf2e983acddb1887}\label{class_ogre_1_1_terrain_aca2087cd57d5c80ccf2e983acddb1887}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated@{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated}}
\index{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated@{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated()}{getLODLevelWhenVertexEliminated()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Utility method, get the first L\+OD Level at which this vertex is no longer included. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a2f98ad8c78b6046d4d4f4dcf9d367fae}\label{class_ogre_1_1_terrain_a2f98ad8c78b6046d4d4f4dcf9d367fae}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated@{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated}}
\index{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated@{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated()}{getLODLevelWhenVertexEliminated()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::get\+L\+O\+D\+Level\+When\+Vertex\+Eliminated (\begin{DoxyParamCaption}\item[{long}]{row\+Or\+Colulmn }\end{DoxyParamCaption}) const}



Utility method, get the first L\+OD Level at which this vertex is no longer included. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a5415ad85a6bf652029c01169105a068d}\label{class_ogre_1_1_terrain_a5415ad85a6bf652029c01169105a068d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Quad\+Tree@{get\+Quad\+Tree}}
\index{get\+Quad\+Tree@{get\+Quad\+Tree}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Quad\+Tree()}{getQuadTree()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Terrain\+Quad\+Tree\+Node}$\ast$ Ogre\+::\+Terrain\+::get\+Quad\+Tree (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the top level of the quad tree which is used to divide up the terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_aadd272b751be4c855ef9233b7e4cd9ce}\label{class_ogre_1_1_terrain_aadd272b751be4c855ef9233b7e4cd9ce}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Terrain\+Normal\+Map@{get\+Terrain\+Normal\+Map}}
\index{get\+Terrain\+Normal\+Map@{get\+Terrain\+Normal\+Map}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Terrain\+Normal\+Map()}{getTerrainNormalMap()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} Ogre\+::\+Terrain\+::get\+Terrain\+Normal\+Map (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the (global) normal map texture. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a80e114d5ece4c400eff6dbe9bb00af70}\label{class_ogre_1_1_terrain_a80e114d5ece4c400eff6dbe9bb00af70}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Neighbour@{get\+Neighbour}}
\index{get\+Neighbour@{get\+Neighbour}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Neighbour()}{getNeighbour()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain}{Terrain}$\ast$ Ogre\+::\+Terrain\+::get\+Neighbour (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index}}]{index }\end{DoxyParamCaption}) const}



Retrieve the terrain\textquotesingle{}s neighbour, or null if not present. 

\begin{DoxyRemark}{Remarks}
Terrains only know about their neighbours if they are notified via set\+Neighbour. This information is not saved with the terrain since every tile must be able to be independent. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em index} & The index of the neighbour \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_aa0d9b7d033bd0b3c29c13e6151c93bd0}\label{class_ogre_1_1_terrain_aa0d9b7d033bd0b3c29c13e6151c93bd0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!set\+Neighbour@{set\+Neighbour}}
\index{set\+Neighbour@{set\+Neighbour}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{set\+Neighbour()}{setNeighbour()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::set\+Neighbour (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index}}]{index,  }\item[{\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{neighbour,  }\item[{bool}]{recalculate = {\ttfamily false},  }\item[{bool}]{notify\+Other = {\ttfamily true} }\end{DoxyParamCaption})}



Set a terrain\textquotesingle{}s neighbour, or null to detach one. 

\begin{DoxyRemark}{Remarks}
This information is not saved with the terrain since every tile must be able to be independent. However if modifications are made to a tile which can affect its neighbours, while connected the changes will be propagated. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em index} & The index of the neighbour \\
\hline
{\em neighbour} & The terrain instance to become the neighbour, or null to reset. \\
\hline
{\em recalculate} & If true, this terrain instance will recalculate elements that could be affected by the connection of this tile (e.\+g. matching heights, calcaulting normals, calculating shadows crossing the boundary). If false, this terrain\textquotesingle{}s state is assumed to be up to date already (e.\+g. was calculated with this tile present before and the state saved). \\
\hline
{\em notify\+Other} & Whether the neighbour should also be notified (recommended to leave this at the default so relationships are up to date before background updates are triggered) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad90008dc319c694b073fc1e6523e03c2}\label{class_ogre_1_1_terrain_ad90008dc319c694b073fc1e6523e03c2}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Opposite\+Neighbour@{get\+Opposite\+Neighbour}}
\index{get\+Opposite\+Neighbour@{get\+Opposite\+Neighbour}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Opposite\+Neighbour()}{getOppositeNeighbour()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} Ogre\+::\+Terrain\+::get\+Opposite\+Neighbour (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index}}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the opposite neighbour relationship (useful for finding the neighbour index from the perspective of the tile the other side of the boundary). 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a14e9fbfcb1edd236554880595b02899b}\label{class_ogre_1_1_terrain_a14e9fbfcb1edd236554880595b02899b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Neighbour\+Index@{get\+Neighbour\+Index}}
\index{get\+Neighbour\+Index@{get\+Neighbour\+Index}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Neighbour\+Index()}{getNeighbourIndex()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index} Ogre\+::\+Terrain\+::get\+Neighbour\+Index (\begin{DoxyParamCaption}\item[{long}]{offsetx,  }\item[{long}]{offsety }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the neighbour enum for a given offset in a grid (signed). 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a9a1c32a11911a0ccea0eda01c86484a9}\label{class_ogre_1_1_terrain_a9a1c32a11911a0ccea0eda01c86484a9}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!notify\+Neighbours@{notify\+Neighbours}}
\index{notify\+Neighbours@{notify\+Neighbours}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{notify\+Neighbours()}{notifyNeighbours()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::notify\+Neighbours (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Tell this instance to notify all neighbours that will be affected by a height change that has taken place. 

\begin{DoxyRemark}{Remarks}
This method will determine which neighbours need notification and call their neighbour\+Modified method. It is called automatically by \hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{update\+Geometry()}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a5baccf626f31854f341910aa4c7c0500}\label{class_ogre_1_1_terrain_a5baccf626f31854f341910aa4c7c0500}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!neighbour\+Modified@{neighbour\+Modified}}
\index{neighbour\+Modified@{neighbour\+Modified}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{neighbour\+Modified()}{neighbourModified()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::neighbour\+Modified (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_a2d0c6e14298e6a196148388ca2ffa9e2}{Neighbour\+Index}}]{index,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{edgerect,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{shadowrect }\end{DoxyParamCaption})}



Notify that a neighbour has just finished updating and that this change affects this tile. 


\begin{DoxyParams}{Parameters}
{\em index} & The neighbour index (from this tile\textquotesingle{}s perspective) \\
\hline
{\em edgerect} & The area at the edge of this tile that needs height / normal recalculation (may be null) \\
\hline
{\em shadowrect} & The area on this tile where shadows need recalculating (may be null) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_adfae6aa2b309d833700cc5f783a6c23f}\label{class_ogre_1_1_terrain_adfae6aa2b309d833700cc5f783a6c23f}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!ray\+Select\+Neighbour@{ray\+Select\+Neighbour}}
\index{ray\+Select\+Neighbour@{ray\+Select\+Neighbour}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{ray\+Select\+Neighbour()}{raySelectNeighbour()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain}{Terrain}$\ast$ Ogre\+::\+Terrain\+::ray\+Select\+Neighbour (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_ray}{Ray} \&}]{ray,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{distance\+Limit = {\ttfamily 0} }\end{DoxyParamCaption})}



Utility method to pick a neighbour based on a ray. 


\begin{DoxyParams}{Parameters}
{\em ray} & The ray in world space \\
\hline
{\em distance\+Limit} & Limit beyond which we want to ignore neighbours (0 for infinite) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The first neighbour along this ray, or null 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a1ba82d7fe350ae72a2d748eb4e02b960}\label{class_ogre_1_1_terrain_a1ba82d7fe350ae72a2d748eb4e02b960}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!\+\_\+dump\+Textures@{\+\_\+dump\+Textures}}
\index{\+\_\+dump\+Textures@{\+\_\+dump\+Textures}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{\+\_\+dump\+Textures()}{\_dumpTextures()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::\+\_\+dump\+Textures (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{prefix,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{suffix }\end{DoxyParamCaption})}



Dump textures to files. 

\begin{DoxyRemark}{Remarks}
This is a debugging method. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a518a4dcf0c880eeadc3d0ae6ff4aa5b1}\label{class_ogre_1_1_terrain_a518a4dcf0c880eeadc3d0ae6ff4aa5b1}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!is\+Derived\+Data\+Update\+In\+Progress@{is\+Derived\+Data\+Update\+In\+Progress}}
\index{is\+Derived\+Data\+Update\+In\+Progress@{is\+Derived\+Data\+Update\+In\+Progress}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{is\+Derived\+Data\+Update\+In\+Progress()}{isDerivedDataUpdateInProgress()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+::is\+Derived\+Data\+Update\+In\+Progress (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Query whether a derived data update is in progress or not. 



References \+\_\+\+Ogre\+Terrain\+Export, O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX, and Ogre\+::operator$<$$<$().

\mbox{\Hypertarget{class_ogre_1_1_terrain_a86553dfa0e4c39018d8ee23f96fe588d}\label{class_ogre_1_1_terrain_a86553dfa0e4c39018d8ee23f96fe588d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+World\+To\+Terrain\+Axes@{convert\+World\+To\+Terrain\+Axes}}
\index{convert\+World\+To\+Terrain\+Axes@{convert\+World\+To\+Terrain\+Axes}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+World\+To\+Terrain\+Axes()}{convertWorldToTerrainAxes()}}
{\footnotesize\ttfamily static void Ogre\+::\+Terrain\+::convert\+World\+To\+Terrain\+Axes (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{world\+Vec,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{terrain\+Vec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to convert axes from world space to terrain space (xy terrain, z up) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_afb9983e073970fa2fa47ede55a7f16f6}\label{class_ogre_1_1_terrain_afb9983e073970fa2fa47ede55a7f16f6}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!convert\+Terrain\+To\+World\+Axes@{convert\+Terrain\+To\+World\+Axes}}
\index{convert\+Terrain\+To\+World\+Axes@{convert\+Terrain\+To\+World\+Axes}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{convert\+Terrain\+To\+World\+Axes()}{convertTerrainToWorldAxes()}}
{\footnotesize\ttfamily static void Ogre\+::\+Terrain\+::convert\+Terrain\+To\+World\+Axes (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Alignment}}]{align,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{terrain\+Vec,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{world\+Vec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to convert axes from terrain space (xy terrain, z up) tp world space. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a124c278790b4228e7dfe6a06575cf653}\label{class_ogre_1_1_terrain_a124c278790b4228e7dfe6a06575cf653}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!write\+Layer\+Declaration@{write\+Layer\+Declaration}}
\index{write\+Layer\+Declaration@{write\+Layer\+Declaration}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{write\+Layer\+Declaration()}{writeLayerDeclaration()}}
{\footnotesize\ttfamily static void Ogre\+::\+Terrain\+::write\+Layer\+Declaration (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&}]{decl,  }\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{ser }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to write a layer declaration to a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_ac78ab1806379267473d03a57dde9bbb8}\label{class_ogre_1_1_terrain_ac78ab1806379267473d03a57dde9bbb8}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!read\+Layer\+Declaration@{read\+Layer\+Declaration}}
\index{read\+Layer\+Declaration@{read\+Layer\+Declaration}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{read\+Layer\+Declaration()}{readLayerDeclaration()}}
{\footnotesize\ttfamily static bool Ogre\+::\+Terrain\+::read\+Layer\+Declaration (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{ser,  }\item[{\hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&}]{targetdecl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to read a layer declaration from a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a7b01d7b34a6cc4c890a393857276bf42}\label{class_ogre_1_1_terrain_a7b01d7b34a6cc4c890a393857276bf42}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!write\+Layer\+Instance\+List@{write\+Layer\+Instance\+List}}
\index{write\+Layer\+Instance\+List@{write\+Layer\+Instance\+List}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{write\+Layer\+Instance\+List()}{writeLayerInstanceList()}}
{\footnotesize\ttfamily static void Ogre\+::\+Terrain\+::write\+Layer\+Instance\+List (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} \&}]{lst,  }\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{ser }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to write a layer instance list to a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a5ea9b366b0dead6adf4bb63382851a17}\label{class_ogre_1_1_terrain_a5ea9b366b0dead6adf4bb63382851a17}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!read\+Layer\+Instance\+List@{read\+Layer\+Instance\+List}}
\index{read\+Layer\+Instance\+List@{read\+Layer\+Instance\+List}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{read\+Layer\+Instance\+List()}{readLayerInstanceList()}}
{\footnotesize\ttfamily static bool Ogre\+::\+Terrain\+::read\+Layer\+Instance\+List (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{ser,  }\item[{size\+\_\+t}]{num\+Samplers,  }\item[{\hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} \&}]{targetlst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Utility method to read a layer instance list from a stream. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_a998e0575ce4f0385512363c1c8019047}\label{class_ogre_1_1_terrain_a998e0575ce4f0385512363c1c8019047}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_RW\_MUTEX()}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+::\+O\+G\+R\+E\+\_\+\+R\+W\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{m\+Neighbour\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a6ca2d94a3062b2ae63620ff2b1121b25}\label{class_ogre_1_1_terrain_a6ca2d94a3062b2ae63620ff2b1121b25}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!increase\+Lod\+Level@{increase\+Lod\+Level}}
\index{increase\+Lod\+Level@{increase\+Lod\+Level}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{increase\+Lod\+Level()}{increaseLodLevel()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::increase\+Lod\+Level (\begin{DoxyParamCaption}\item[{bool}]{synchronous = {\ttfamily false} }\end{DoxyParamCaption})}



Increase \hyperlink{class_ogre_1_1_terrain}{Terrain}\textquotesingle{}s L\+OD level by 1. 


\begin{DoxyParams}{Parameters}
{\em synchronous} & Run synchronously \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ac11979818981d2a7c09c1982479932b0}\label{class_ogre_1_1_terrain_ac11979818981d2a7c09c1982479932b0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!decrease\+Lod\+Level@{decrease\+Lod\+Level}}
\index{decrease\+Lod\+Level@{decrease\+Lod\+Level}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{decrease\+Lod\+Level()}{decreaseLodLevel()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+::decrease\+Lod\+Level (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Removes highest L\+OD level loaded. 

\begin{DoxyRemark}{Remarks}
If there is L\+OD level load in progress it\textquotesingle{}s load is canceled instead of removal of already loaded one. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_afcf5e4be38a9734b95e2a1578630b17d}\label{class_ogre_1_1_terrain_afcf5e4be38a9734b95e2a1578630b17d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Highest\+Lod\+Prepared@{get\+Highest\+Lod\+Prepared}}
\index{get\+Highest\+Lod\+Prepared@{get\+Highest\+Lod\+Prepared}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Highest\+Lod\+Prepared()}{getHighestLodPrepared()}}
{\footnotesize\ttfamily int Ogre\+::\+Terrain\+::get\+Highest\+Lod\+Prepared (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::\+Terrain\+Lod\+Manager\+::get\+Highest\+Lod\+Prepared().

\mbox{\Hypertarget{class_ogre_1_1_terrain_a8c4feba3c0ec197a375173e90423e978}\label{class_ogre_1_1_terrain_a8c4feba3c0ec197a375173e90423e978}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Highest\+Lod\+Loaded@{get\+Highest\+Lod\+Loaded}}
\index{get\+Highest\+Lod\+Loaded@{get\+Highest\+Lod\+Loaded}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Highest\+Lod\+Loaded()}{getHighestLodLoaded()}}
{\footnotesize\ttfamily int Ogre\+::\+Terrain\+::get\+Highest\+Lod\+Loaded (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::\+Terrain\+Lod\+Manager\+::get\+Highest\+Lod\+Loaded().

\mbox{\Hypertarget{class_ogre_1_1_terrain_a768bccd8d43b0b1f5ff5eaa513be60f3}\label{class_ogre_1_1_terrain_a768bccd8d43b0b1f5ff5eaa513be60f3}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!get\+Target\+Lod\+Level@{get\+Target\+Lod\+Level}}
\index{get\+Target\+Lod\+Level@{get\+Target\+Lod\+Level}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{get\+Target\+Lod\+Level()}{getTargetLodLevel()}}
{\footnotesize\ttfamily int Ogre\+::\+Terrain\+::get\+Target\+Lod\+Level (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::\+Terrain\+Lod\+Manager\+::get\+Target\+Lod\+Level().

\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_aaafbc877eaf190b86163c1e171a4400e}\label{class_ogre_1_1_scene_manager_1_1_listener_aaafbc877eaf190b86163c1e171a4400e}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!pre\+Update\+Scene\+Graph@{pre\+Update\+Scene\+Graph}}
\index{pre\+Update\+Scene\+Graph@{pre\+Update\+Scene\+Graph}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{pre\+Update\+Scene\+Graph()}{preUpdateSceneGraph()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::pre\+Update\+Scene\+Graph (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{source,  }\item[{\hyperlink{class_ogre_1_1_camera}{Camera} $\ast$}]{camera }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Called prior to updating the scene graph in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. 

\begin{DoxyRemark}{Remarks}
This is called before updating the scene graph for a camera. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em source} & The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} instance raising this event. \\
\hline
{\em camera} & The camera being updated. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_ad8f0c1e1efaccade0663e416d76b960c}\label{class_ogre_1_1_scene_manager_1_1_listener_ad8f0c1e1efaccade0663e416d76b960c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!post\+Update\+Scene\+Graph@{post\+Update\+Scene\+Graph}}
\index{post\+Update\+Scene\+Graph@{post\+Update\+Scene\+Graph}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{post\+Update\+Scene\+Graph()}{postUpdateSceneGraph()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::post\+Update\+Scene\+Graph (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{source,  }\item[{\hyperlink{class_ogre_1_1_camera}{Camera} $\ast$}]{camera }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Called after updating the scene graph in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. 

\begin{DoxyRemark}{Remarks}
This is called after updating the scene graph for a camera. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em source} & The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} instance raising this event. \\
\hline
{\em camera} & The camera being updated. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_ab57b560ea987d8dae9901908d0ab6f28}\label{class_ogre_1_1_scene_manager_1_1_listener_ab57b560ea987d8dae9901908d0ab6f28}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!post\+Find\+Visible\+Objects@{post\+Find\+Visible\+Objects}}
\index{post\+Find\+Visible\+Objects@{post\+Find\+Visible\+Objects}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{post\+Find\+Visible\+Objects()}{postFindVisibleObjects()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::post\+Find\+Visible\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{source,  }\item[{\hyperlink{class_ogre_1_1_scene_manager_a51db39cc4fa15b28086a1793d42fc827}{Illumination\+Render\+Stage}}]{irs,  }\item[{\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Called after searching for visible objects in this \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}. 

\begin{DoxyRemark}{Remarks}
Note that the render queue at this stage will be full of the current scenes contents, ready for rendering. You may manually add renderables to this queue if you wish. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em source} & The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} instance raising this event. \\
\hline
{\em irs} & The stage of illumination being dealt with. I\+R\+S\+\_\+\+N\+O\+NE for a regular render, I\+R\+S\+\_\+\+R\+E\+N\+D\+E\+R\+\_\+\+T\+O\+\_\+\+T\+E\+X\+T\+U\+RE for a shadow caster render. \\
\hline
{\em v} & The viewport being updated. You can get the camera from here. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_aa2c3ceb367f47c3721e9d1843288d341}\label{class_ogre_1_1_scene_manager_1_1_listener_aa2c3ceb367f47c3721e9d1843288d341}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!shadow\+Textures\+Updated@{shadow\+Textures\+Updated}}
\index{shadow\+Textures\+Updated@{shadow\+Textures\+Updated}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{shadow\+Textures\+Updated()}{shadowTexturesUpdated()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::shadow\+Textures\+Updated (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{number\+Of\+Shadow\+Textures }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Event raised after all shadow textures have been rendered into for all queues / targets but before any other geometry has been rendered (including main scene geometry and any additional shadow receiver passes). 

\begin{DoxyRemark}{Remarks}
This callback is useful for those that wish to perform some additional processing on shadow textures before they are used to render shadows. For example you could perform some filtering by rendering the existing shadow textures into another alternative shadow texture with a shader.\mbox{]} 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This event will only be fired when texture shadows are in use. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em number\+Of\+Shadow\+Textures} & The number of shadow textures in use \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_a012a1c3dcf2efbd8245fd125e7fc1b64}\label{class_ogre_1_1_scene_manager_1_1_listener_a012a1c3dcf2efbd8245fd125e7fc1b64}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!shadow\+Texture\+Caster\+Pre\+View\+Proj@{shadow\+Texture\+Caster\+Pre\+View\+Proj}}
\index{shadow\+Texture\+Caster\+Pre\+View\+Proj@{shadow\+Texture\+Caster\+Pre\+View\+Proj}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{shadow\+Texture\+Caster\+Pre\+View\+Proj()}{shadowTextureCasterPreViewProj()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::shadow\+Texture\+Caster\+Pre\+View\+Proj (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_light}{Light} $\ast$}]{light,  }\item[{\hyperlink{class_ogre_1_1_camera}{Camera} $\ast$}]{camera,  }\item[{size\+\_\+t}]{iteration }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



This event occurs just before the view \& projection matrices are set for rendering into a shadow texture. 

\begin{DoxyRemark}{Remarks}
You can use this event hook to perform some custom processing, such as altering the camera being used for rendering the light\textquotesingle{}s view, including setting custom view \& projection matrices if you want to perform an advanced shadow technique. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This event will only be fired when texture shadows are in use. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em light} & Pointer to the light for which shadows are being rendered \\
\hline
{\em camera} & Pointer to the camera being used to render \\
\hline
{\em iteration} & For lights that use multiple shadow textures, the iteration number \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_aa05def0ab89195c585b5467059245641}\label{class_ogre_1_1_scene_manager_1_1_listener_aa05def0ab89195c585b5467059245641}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!shadow\+Texture\+Receiver\+Pre\+View\+Proj@{shadow\+Texture\+Receiver\+Pre\+View\+Proj}}
\index{shadow\+Texture\+Receiver\+Pre\+View\+Proj@{shadow\+Texture\+Receiver\+Pre\+View\+Proj}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{shadow\+Texture\+Receiver\+Pre\+View\+Proj()}{shadowTextureReceiverPreViewProj()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Scene\+Manager\+::\+Listener\+::shadow\+Texture\+Receiver\+Pre\+View\+Proj (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_light}{Light} $\ast$}]{light,  }\item[{\hyperlink{class_ogre_1_1_frustum}{Frustum} $\ast$}]{frustum }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



This event occurs just before the view \& projection matrices are set for re-\/rendering a shadow receiver. 

\begin{DoxyRemark}{Remarks}
You can use this event hook to perform some custom processing, such as altering the projection frustum being used for rendering the shadow onto the receiver to perform an advanced shadow technique. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This event will only be fired when texture shadows are in use. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em light} & Pointer to the light for which shadows are being rendered \\
\hline
{\em frustum} & Pointer to the projection frustum being used to project the shadow texture \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_scene_manager_1_1_listener_a5ef1be858fe331867653fbb8aa819494}\label{class_ogre_1_1_scene_manager_1_1_listener_a5ef1be858fe331867653fbb8aa819494}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!sort\+Lights\+Affecting\+Frustum@{sort\+Lights\+Affecting\+Frustum}}
\index{sort\+Lights\+Affecting\+Frustum@{sort\+Lights\+Affecting\+Frustum}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{sort\+Lights\+Affecting\+Frustum()}{sortLightsAffectingFrustum()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Scene\+Manager\+::\+Listener\+::sort\+Lights\+Affecting\+Frustum (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List} \&}]{light\+List }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Hook to allow the listener to override the ordering of lights for the entire frustum. 

\begin{DoxyRemark}{Remarks}
Whilst ordinarily lights are sorted per rendered object (
\end{DoxyRemark}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_movable_object_a4fbc0296b902a113376688aff724d02d}{Movable\+Object\+::query\+Lights}), texture shadows adds another issue in that, given there is a finite number of shadow textures, we must choose which lights to render texture shadows from based on the entire frustum. These lights should always be listed first in every objects own \hyperlink{struct_ogre_1_1list}{list}, followed by any other lights which will not cast texture shadows (either because they have shadow casting off, or there aren\textquotesingle{}t enough shadow textures to service them). 
\end{DoxySeeAlso}
\begin{DoxyParagraph}{}
This hook allows you to override the detailed ordering of the lights per frustum. The default ordering is shadow casters first (which you must also respect if you override this method), and ordered by distance from the camera within those 2 groups. Obviously the closest lights with shadow casting enabled will be listed first. Only lights within the range of the frustum will be in the list. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em light\+List} & The list of lights within range of the frustum which you may sort. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if you sorted the list, false otherwise. 
\end{DoxyReturn}


\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_a305c9e25905898002f056b3227b1ee65}\label{class_ogre_1_1_terrain_a305c9e25905898002f056b3227b1ee65}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!Terrain\+Lod\+Manager@{Terrain\+Lod\+Manager}}
\index{Terrain\+Lod\+Manager@{Terrain\+Lod\+Manager}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Lod\+Manager}{TerrainLodManager}}
{\footnotesize\ttfamily friend class \hyperlink{class_ogre_1_1_terrain_lod_manager}{Terrain\+Lod\+Manager}\hspace{0.3cm}{\ttfamily [friend]}}



\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_ad1b6d65618e1ebc55155214f3b10b337}\label{class_ogre_1_1_terrain_ad1b6d65618e1ebc55155214f3b10b337}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAIN\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_afd3641ddf000f3e2ca771408f558131b}\label{class_ogre_1_1_terrain_afd3641ddf000f3e2ca771408f558131b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAIN\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a5c204799a40adae8b01411ec05dbc841}\label{class_ogre_1_1_terrain_a5c204799a40adae8b01411ec05dbc841}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE@{T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE}}
\index{T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE@{T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE}{TERRAIN\_MAX\_BATCH\_SIZE}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+\_\+\+M\+A\+X\+\_\+\+B\+A\+T\+C\+H\+\_\+\+S\+I\+ZE\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a1333f67a868e2e38123ab5c4532cc8e1}\label{class_ogre_1_1_terrain_a1333f67a868e2e38123ab5c4532cc8e1}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS@{T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS}}
\index{T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS@{T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS}{TERRAIN\_GENERATE\_MATERIAL\_INTERVAL\_MS}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a7e1487b57f16a1479302d1896c6f4445}{uint64} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+I\+N\+T\+E\+R\+V\+A\+L\+\_\+\+MS\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_ac83d9fa6c4ba65db9c7ad66bbd01b0de}\label{class_ogre_1_1_terrain_ac83d9fa6c4ba65db9c7ad66bbd01b0de}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINLAYERDECLARATION\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a14ce718231ed706aec11489fc6843d76}\label{class_ogre_1_1_terrain_a14ce718231ed706aec11489fc6843d76}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINLAYERDECLARATION\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a53d1561777a42b20c5aa5a42dd96bf9b}\label{class_ogre_1_1_terrain_a53d1561777a42b20c5aa5a42dd96bf9b}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINLAYERSAMPLER\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a369a6d0c5e30874dd103c7089406be6c}\label{class_ogre_1_1_terrain_a369a6d0c5e30874dd103c7089406be6c}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINLAYERSAMPLER\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_adf20ab502696a7e4acf28dec2ebdd0c7}\label{class_ogre_1_1_terrain_adf20ab502696a7e4acf28dec2ebdd0c7}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINLAYERSAMPLERELEMENT\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a6b4dc148f017fbd6441bc81f79fe743d}\label{class_ogre_1_1_terrain_a6b4dc148f017fbd6441bc81f79fe743d}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINLAYERSAMPLERELEMENT\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+S\+A\+M\+P\+L\+E\+R\+E\+L\+E\+M\+E\+N\+T\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_acb18d059e425a9e6f7677d4dfb2d43ee}\label{class_ogre_1_1_terrain_acb18d059e425a9e6f7677d4dfb2d43ee}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINLAYERINSTANCE\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_ac7837f27d59df9244743172d331e2fb3}\label{class_ogre_1_1_terrain_ac7837f27d59df9244743172d331e2fb3}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINLAYERINSTANCE\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+L\+A\+Y\+E\+R\+I\+N\+S\+T\+A\+N\+C\+E\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a50efd0b73343b76d8cfae1366cfd1cd0}\label{class_ogre_1_1_terrain_a50efd0b73343b76d8cfae1366cfd1cd0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINDERIVEDDATA\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a935d5fea06bddac979ae56c7fa13d9da}\label{class_ogre_1_1_terrain_a935d5fea06bddac979ae56c7fa13d9da}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINDERIVEDDATA\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+D\+E\+R\+I\+V\+E\+D\+D\+A\+T\+A\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a61228d1282e5e503848dab11a2c794fd}\label{class_ogre_1_1_terrain_a61228d1282e5e503848dab11a2c794fd}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}}
\index{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID@{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID}{TERRAINGENERALINFO\_CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a3786f2f64dbc4a16984a607bfa53dd82}\label{class_ogre_1_1_terrain_a3786f2f64dbc4a16984a607bfa53dd82}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON@{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON}{TERRAINGENERALINFO\_CHUNK\_VERSION}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+T\+E\+R\+R\+A\+I\+N\+G\+E\+N\+E\+R\+A\+L\+I\+N\+F\+O\+\_\+\+C\+H\+U\+N\+K\+\_\+\+V\+E\+R\+S\+I\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_aefb36415178b8e15aac901f87b61d3da}\label{class_ogre_1_1_terrain_aefb36415178b8e15aac901f87b61d3da}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM@{L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM}}
\index{L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM@{L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM}{LOD\_MORPH\_CUSTOM\_PARAM}}
{\footnotesize\ttfamily const size\+\_\+t Ogre\+::\+Terrain\+::\+L\+O\+D\+\_\+\+M\+O\+R\+P\+H\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+P\+A\+R\+AM\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_adc4deb8ce09c46f3d6215ea1ff390959}\label{class_ogre_1_1_terrain_adc4deb8ce09c46f3d6215ea1ff390959}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS}}
\index{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS}{DERIVED\_DATA\_DELTAS}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+D\+E\+L\+T\+AS\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a633492f40707af756814bca31f0f35ba}\label{class_ogre_1_1_terrain_a633492f40707af756814bca31f0f35ba}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS}}
\index{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS}{DERIVED\_DATA\_NORMALS}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+N\+O\+R\+M\+A\+LS\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a1ebde7f1f98abe26938397f7110c88f3}\label{class_ogre_1_1_terrain_a1ebde7f1f98abe26938397f7110c88f3}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP}}
\index{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP}{DERIVED\_DATA\_LIGHTMAP}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+L\+I\+G\+H\+T\+M\+AP\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_aaef9ac3a5d1ceed0260a17f93b88d848}\label{class_ogre_1_1_terrain_aaef9ac3a5d1ceed0260a17f93b88d848}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL}}
\index{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL@{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL}{DERIVED\_DATA\_ALL}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+::\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+A\+LL\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_a0441ddb006dede009b3725e0a5536bba}\label{class_ogre_1_1_terrain_a0441ddb006dede009b3725e0a5536bba}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST}}
\index{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST}{WORKQUEUE\_DERIVED\_DATA\_REQUEST}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+D\+E\+R\+I\+V\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+Q\+U\+E\+ST\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_aaa21ee42164657f45f932c5f70c590a0}\label{class_ogre_1_1_terrain_aaa21ee42164657f45f932c5f70c590a0}} 
\index{Ogre\+::\+Terrain@{Ogre\+::\+Terrain}!W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST}}
\index{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST}!Ogre\+::\+Terrain@{Ogre\+::\+Terrain}}
\subsubsection{\texorpdfstring{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST}{WORKQUEUE\_GENERATE\_MATERIAL\_REQUEST}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+::\+W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+G\+E\+N\+E\+R\+A\+T\+E\+\_\+\+M\+A\+T\+E\+R\+I\+A\+L\+\_\+\+R\+E\+Q\+U\+E\+ST\hspace{0.3cm}{\ttfamily [static]}}



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