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


Helper class to assist you in managing multiple terrain instances that are connected to each other.  




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



Inheritance diagram for Ogre\+:\+:Terrain\+Group\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_terrain_group__inherit__graph}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_ogre_1_1_terrain_group_1_1_ray_result}{Ray\+Result}
\begin{DoxyCompactList}\small\item\em Result from a terrain ray intersection with the terrain group. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot}{Terrain\+Slot}
\begin{DoxyCompactList}\small\item\em Slot for a terrain instance, together with its definition. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot_definition}{Terrain\+Slot\+Definition}
\begin{DoxyCompactList}\small\item\em Definition of how to populate a \textquotesingle{}slot\textquotesingle{} in the terrain group. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef \hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}$<$ \hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Terrain\+Slot\+Map} $>$ \hyperlink{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}{Const\+Terrain\+Iterator}
\item 
typedef \hyperlink{class_ogre_1_1_map_iterator}{Map\+Iterator}$<$ \hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Terrain\+Slot\+Map} $>$ \hyperlink{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}{Terrain\+Iterator}
\item 
typedef std\+::vector$<$ \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$ $>$ \hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Terrain\+List}
\item 
typedef std\+::map$<$ \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}, \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot}{Terrain\+Slot} $\ast$ $>$ \hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Terrain\+Slot\+Map}
\begin{DoxyCompactList}\small\item\em Packed map, signed 16 bits for each axis from -\/32767 to +32767. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_terrain_group_a7be4b53fbb7f1edd7707c69b4ee883f4}{Terrain\+Group} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$sm, \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Terrain\+::\+Alignment} align, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} terrain\+Size, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} terrain\+World\+Size)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_group_a1ceb1403ef71bd8c5badd1861f17a566}{Terrain\+Group} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$sm)
\begin{DoxyCompactList}\small\item\em Alternate constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_terrain_group_a8fa89b425d4ce101a4f3973096d204b2}{$\sim$\+Terrain\+Group} ()
\item 
void \hyperlink{class_ogre_1_1_terrain_group_ac8d34ec8ee538ca6d917c7a6302310fd}{auto\+Update\+Lod} (long x, long y, bool synchronous, const \hyperlink{class_ogre_1_1_any}{Any} \&data)
\begin{DoxyCompactList}\small\item\em Automatically checks if terrain\textquotesingle{}s L\+OD level needs to be updated. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a4c6fa825170af7191d061c273349cd88}{auto\+Update\+Lod\+All} (bool synchronous, const \hyperlink{class_ogre_1_1_any}{Any} \&data)
\item 
void \hyperlink{class_ogre_1_1_terrain_group_a1f7a354c649351e5796ca71b764b03b6}{box\+Intersects} (const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \&box, \hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Terrain\+List} $\ast$result\+List) const
\begin{DoxyCompactList}\small\item\em Test intersection of a box with the terrain. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_group_a008f51c172bd858cca8763af865f3fa1}{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_group_ad608848047850ff730ef870457b7e14f}{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_group_a09be3d6866674b23e390ea6d70db0ae5}{convert\+Terrain\+Slot\+To\+World\+Position} (long x, long y, \hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$pos) const
\begin{DoxyCompactList}\small\item\em Convert a slot location to a world position at the centre. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a5719684dae085bfdbe81564151fdea1d}{convert\+World\+Position\+To\+Terrain\+Slot} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&pos, long $\ast$x, long $\ast$y) const
\begin{DoxyCompactList}\small\item\em Convert a world position to terrain slot coordinates. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a31a307cb267f071a72defcfad0598745}{decrease\+Lod\+Level} (long x, long y)
\begin{DoxyCompactList}\small\item\em Removes terrain\textquotesingle{}s highest L\+OD level. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a0dcd142d9931122fd8de4cd4ca9c4263}{define\+Terrain} (long x, long y)
\begin{DoxyCompactList}\small\item\em Define a \textquotesingle{}slot\textquotesingle{} in the terrain grid -\/ in this case to be loaded from a generated file name. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a3339ab4895c8a8f5339dc789854abd65}{define\+Terrain} (long x, long y, float constant\+Height)
\begin{DoxyCompactList}\small\item\em Define a \textquotesingle{}slot\textquotesingle{} in the terrain grid -\/ in this case a flat terrain. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a5f80864c75d98bf4796a9f925b65eebb}{define\+Terrain} (long x, long y, const \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Terrain\+::\+Import\+Data} $\ast$import\+Data)
\begin{DoxyCompactList}\small\item\em Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a1e6699ed42660600b9f4cef4ba9812f4}{define\+Terrain} (long x, long y, const \hyperlink{class_ogre_1_1_image}{Image} $\ast$img, const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} $\ast$layers=0)
\begin{DoxyCompactList}\small\item\em Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a72463e9fad2427e3e0b9d55c9fe1c7f7}{define\+Terrain} (long x, long y, const float $\ast$p\+Float, const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} $\ast$layers=0)
\begin{DoxyCompactList}\small\item\em Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a212c614fe05a4c09731b3c2d9227d1e2}{define\+Terrain} (long x, long y, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a6f1921036f2e2a12087c5ee792a03492}{free\+Temporary\+Resources} ()
\begin{DoxyCompactList}\small\item\em Free as many resources as possible for optimal run-\/time memory use for all terrain tiles. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \hyperlink{class_ogre_1_1_terrain_group_a80e7857e742770fd6f6c97d3d68461c8}{generate\+Filename} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Generate a file name based on the current naming convention. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Terrain\+::\+Alignment} \hyperlink{class_ogre_1_1_terrain_group_ab18dbc2536fc791783e120191128ebab}{get\+Alignment} () const
\begin{DoxyCompactList}\small\item\em Retrieve the alignment of the grid of terrain (cannot be modified after construction). \end{DoxyCompactList}\item 
virtual \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Terrain\+::\+Import\+Data} \& \hyperlink{class_ogre_1_1_terrain_group_a0b2e61a15cfdda3ed87b62dba174f576}{get\+Default\+Import\+Settings} ()
\begin{DoxyCompactList}\small\item\em Retrieve a shared structure which will provide the base settings for all terrains created via this group. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_group_a3654e0e53dc001cb0b5f4df3c58e4b02}{get\+Filename\+Extension} () const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_group_a5a7edfd17f4989073ed453b3388c3ad1}{get\+Filename\+Prefix} () const
\item 
float \hyperlink{class_ogre_1_1_terrain_group_a0ef435c6c37de37ae09c8874c8fe58dc}{get\+Height\+At\+World\+Position} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} x, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} y, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} z, \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$$\ast$pp\+Terrain=0)
\begin{DoxyCompactList}\small\item\em Get the height data for a given world position (projecting the point down on to the terrain underneath). \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_terrain_group_a404abe9c1da4ae4f794384ef2ddff94d}{get\+Height\+At\+World\+Position} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&pos, \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$$\ast$pp\+Terrain=0)
\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 
size\+\_\+t \hyperlink{class_ogre_1_1_terrain_group_aa6f3102a07e1768367b3c2e2c093c272}{get\+Num\+Terrain\+Prepare\+Requests} () const
\begin{DoxyCompactList}\small\item\em Get the number of terrains that are still waiting for the \hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{Terrain\+::prepare()} to be called. \end{DoxyCompactList}\item 
virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3} \& \hyperlink{class_ogre_1_1_terrain_group_a66a92b5e9a57c2bdedb53413b2e1cfb9}{get\+Origin} () const
\begin{DoxyCompactList}\small\item\em Retrieve the centre position of the grid of terrain. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_terrain_group_a18556f75aad155e5f354aa33ff0d021f}{get\+Resource\+Group} () const
\begin{DoxyCompactList}\small\item\em Get the resource group in which files will be located. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$ \hyperlink{class_ogre_1_1_terrain_group_aeb8e2b387e44622e51f5702e9a6c82a9}{get\+Scene\+Manager} () const
\begin{DoxyCompactList}\small\item\em Retrieve the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} being used for this group. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$ \hyperlink{class_ogre_1_1_terrain_group_aee8ba536655db6cf95da75f339ca5b7c}{get\+Terrain} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Get the terrain instance at a given slot, if loaded. \end{DoxyCompactList}\item 
virtual \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot_definition}{Terrain\+Slot\+Definition} $\ast$ \hyperlink{class_ogre_1_1_terrain_group_a191453da1ec1901dcdf90cc7355bde1f}{get\+Terrain\+Definition} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Get the definition of a slot in the terrain. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}{Terrain\+Iterator} \hyperlink{class_ogre_1_1_terrain_group_ab3a50caf08ce5049ed0a15c0f610523d}{get\+Terrain\+Iterator} ()
\begin{DoxyCompactList}\small\item\em Get an iterator over the defined terrains. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}{Const\+Terrain\+Iterator} \hyperlink{class_ogre_1_1_terrain_group_a258a6c8f9655fc48fd4afbfaf9f650dd}{get\+Terrain\+Iterator} () const
\begin{DoxyCompactList}\small\item\em Get an iterator over the defined terrains (const) \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_group_a7a03112ea42d5962e140fcd9a0c17365}{get\+Terrain\+Size} () const
\begin{DoxyCompactList}\small\item\em Retrieve the size of each terrain instance in number of vertices down one side. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_terrain_group_a1de8ba19022006b0c276fc5cd6d0aa34}{get\+Terrain\+World\+Size} () const
\begin{DoxyCompactList}\small\item\em Retrieve the world size of each terrain instance. \end{DoxyCompactList}\item 
\hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response} $\ast$ \hyperlink{class_ogre_1_1_terrain_group_a28e769b1bb49906de087be411ae97001}{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_group_a5d062f88928dd1a572dc7a411b07457b}{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_group_a29305c16f7e7ae31a69cdfcbde1f2905}{increase\+Lod\+Level} (long x, long y, bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Loads terrain\textquotesingle{}s next L\+OD level. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_terrain_group_a9c8223383679e583761c8af009cd1cf8}{is\+Derived\+Data\+Update\+In\+Progress} () const
\begin{DoxyCompactList}\small\item\em Calls \hyperlink{class_ogre_1_1_terrain_a518a4dcf0c880eeadc3d0ae6ff4aa5b1}{Terrain\+::is\+Derived\+Data\+Update\+In\+Progress} on each loaded instance and returns true if any of them are undergoing a derived update. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_ad1666853bba30ba6c5d98a5f2fc7d7ad}{load\+All\+Terrains} (bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Load any terrain instances that have been defined but not loaded yet. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a24a0fc7a1be84cd44834842521481219}{load\+Group\+Definition} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Load the group definition only in native form from a file. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_ab2024c1b3890def8d88aa3a0436edf66}{load\+Group\+Definition} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&stream)
\begin{DoxyCompactList}\small\item\em Load the group definition only in native form from a serializing stream. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_aa2b3aa6c682d8b60be016bc6e503bd3b}{load\+Terrain} (long x, long y, bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Load a specific terrain slot based on the definition that has already been supplied. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_group_ae56023a560b2b3e650d722e6e95e734c}{pack\+Index} (long x, long y) const
\begin{DoxyCompactList}\small\item\em Convert coordinates to a packed integer index. \end{DoxyCompactList}\item 
\hyperlink{struct_ogre_1_1_terrain_group_1_1_ray_result}{Ray\+Result} \hyperlink{class_ogre_1_1_terrain_group_ad3f690494e45dbe2ee5673e97afbc42d}{ray\+Intersects} (const \hyperlink{class_ogre_1_1_ray}{Ray} \&ray, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} distance\+Limit=0) const
\begin{DoxyCompactList}\small\item\em Test for intersection of a given ray with any terrain in the group. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_afdf092661bbf77ba7e1d5080f2f3bbe2}{remove\+All\+Terrains} ()
\begin{DoxyCompactList}\small\item\em Remove all terrain instances. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_ac61b66e483e66bf0c860b6d9885aa5dd}{remove\+Terrain} (long x, long y)
\begin{DoxyCompactList}\small\item\em Remove a specific terrain slot. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a04ca28f8d5f4d47da77da4b71492ff4c}{save\+All\+Terrains} (bool only\+If\+Modified, bool replace\+Manual\+Filenames=true)
\begin{DoxyCompactList}\small\item\em Save all terrain instances using the assigned file names, or via the filename convention. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a20a7cffbed2c46fef92c2b655781fa7a}{save\+Group\+Definition} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Save the group data only in native form to a file. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a653b5492ff3f70b0363c124bdc2824ad}{save\+Group\+Definition} (\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&stream)
\begin{DoxyCompactList}\small\item\em Save the group data only in native form to a serializing stream. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_ab9136e3fb9fd9b6e1421ad454fe7d53c}{set\+Auto\+Update\+Lod} (\hyperlink{class_ogre_1_1_terrain_auto_update_lod}{Terrain\+Auto\+Update\+Lod} $\ast$updater)
\item 
void \hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&prefix, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&extension)
\begin{DoxyCompactList}\small\item\em Set the naming convention for file names in this terrain group. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a77f531317a2af432f2628fdbb0601cf9}{set\+Filename\+Extension} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&extension)
\item 
void \hyperlink{class_ogre_1_1_terrain_group_aa464da8d2945b6e8ff569c68cd75a6a1}{set\+Filename\+Prefix} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&prefix)
\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_abdcbba7565eea5b03a5d508e2aba07b2}{set\+Origin} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&pos)
\begin{DoxyCompactList}\small\item\em Define the centre position of the grid of terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_ab6f752f831a9fdc36b64b1f0cc1d3da4}{set\+Resource\+Group} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&grp)
\begin{DoxyCompactList}\small\item\em Set the resource group in which files will be located. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_ae30c228ce95e1459276a461f0d11c511}{set\+Terrain\+Size} (\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} new\+Terrain\+Size)
\begin{DoxyCompactList}\small\item\em Set the size of each terrain instance in number of vertices down one side. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_a49fc3c6d80e6a06527cd44773d67d0a8}{set\+Terrain\+World\+Size} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} new\+World\+Size)
\begin{DoxyCompactList}\small\item\em Set the world size of terrain. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a11adbfd073f8384ba2a8713f15787380}{sphere\+Intersects} (const \hyperlink{class_ogre_1_1_sphere}{Sphere} \&sphere, \hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Terrain\+List} $\ast$result\+List) const
\begin{DoxyCompactList}\small\item\em Test intersection of a sphere with the terrain. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_group_afce782965e3d453f9ceb97ae95780e6f}{unload\+Terrain} (long x, long y)
\begin{DoxyCompactList}\small\item\em Unload a specific terrain slot. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a041018a20d3605dd54bdbdbca20df587}{unpack\+Index} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} key, long $\ast$x, long $\ast$y)
\begin{DoxyCompactList}\small\item\em Convert a packed integer index to coordinates. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_abde345652ad41719d6f87232096c281e}{update} (bool synchronous=false)
\begin{DoxyCompactList}\small\item\em Trigger the update process for all terrain instances. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_af9191a938f220f960128fdf7d30acc88}{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 all terrains (L\+OD, lighting) to reflect changed height data. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_terrain_group_a0b073d61ff3bd590a3a1a928a896da9a}{update\+Geometry} ()
\begin{DoxyCompactList}\small\item\em Performs an update on all terrain geometry. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_terrain_group_af5d1ab56ff789b227e25e2011877c224}{C\+H\+U\+N\+K\+\_\+\+ID}
\item 
static const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} \hyperlink{class_ogre_1_1_terrain_group_a18b58f7ef72dae5943447a3167b61150}{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_group_a93836a9bf0faed8a783e65a6f494a633}{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Helper class to assist you in managing multiple terrain instances that are connected to each other. 

\begin{DoxyRemark}{Remarks}
This class makes it easy to specify the same options for a group of terrain instances and have them positioned relative to each other and associated via each other\textquotesingle{}s neighbour connections. You can do all this manually but this class just makes things easier, so that you only have to specify most options once. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Terrains are maintained in a grid of entries, and for simplicity the grid cells are indexed from 0 as a \textquotesingle{}centre\textquotesingle{} slot, supporting both positive and negative values. so (0,0) is the centre slot, (1,0) is the slot to the right of the centre, (1,0) is the slot above the centre, (-\/2,1) is the slot two to the left of the centre and one up, etc. The maximum extent of each axis is -\/32768 to +32767, so in other words enough for over 4 billion entries. That should be enough for anyone! 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
Note that this is not a \textquotesingle{}paging\textquotesingle{} class as such. It\textquotesingle{}s simply a way to make it easier to perform common tasks with multiple terrain instances, which you choose when to define, load and remove. Automatic paging is handled separately by the Paging component. 
\end{DoxyParagraph}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}\label{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Terrain\+List@{Terrain\+List}}
\index{Terrain\+List@{Terrain\+List}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Terrain\+List}{TerrainList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{class_ogre_1_1_terrain}{Terrain}$\ast$$>$ \hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Ogre\+::\+Terrain\+Group\+::\+Terrain\+List}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}\label{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Terrain\+Slot\+Map@{Terrain\+Slot\+Map}}
\index{Terrain\+Slot\+Map@{Terrain\+Slot\+Map}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Terrain\+Slot\+Map}{TerrainSlotMap}}
{\footnotesize\ttfamily typedef std\+::map$<$\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}, \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot}{Terrain\+Slot}$\ast$$>$ \hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Ogre\+::\+Terrain\+Group\+::\+Terrain\+Slot\+Map}}



Packed map, signed 16 bits for each axis from -\/32767 to +32767. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}\label{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Terrain\+Iterator@{Terrain\+Iterator}}
\index{Terrain\+Iterator@{Terrain\+Iterator}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Terrain\+Iterator}{TerrainIterator}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_map_iterator}{Map\+Iterator}$<$\hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Terrain\+Slot\+Map}$>$ \hyperlink{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}{Ogre\+::\+Terrain\+Group\+::\+Terrain\+Iterator}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}\label{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Const\+Terrain\+Iterator@{Const\+Terrain\+Iterator}}
\index{Const\+Terrain\+Iterator@{Const\+Terrain\+Iterator}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Const\+Terrain\+Iterator}{ConstTerrainIterator}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}$<$\hyperlink{class_ogre_1_1_terrain_group_ab844d8ea2a2b5ac755caba4056963f72}{Terrain\+Slot\+Map}$>$ \hyperlink{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}{Ogre\+::\+Terrain\+Group\+::\+Const\+Terrain\+Iterator}}



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a7be4b53fbb7f1edd7707c69b4ee883f4}\label{class_ogre_1_1_terrain_group_a7be4b53fbb7f1edd7707c69b4ee883f4}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Terrain\+Group@{Terrain\+Group}}
\index{Terrain\+Group@{Terrain\+Group}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Terrain\+Group()}{TerrainGroup()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+Group\+::\+Terrain\+Group (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{sm,  }\item[{\hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Terrain\+::\+Alignment}}]{align,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{terrain\+Size,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{terrain\+World\+Size }\end{DoxyParamCaption})}



Constructor. 


\begin{DoxyParams}{Parameters}
{\em sm} & The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} which will parent the terrain instances. \\
\hline
{\em align} & The alignment that all terrain instances will use \\
\hline
{\em terrain\+Size} & The size of each terrain down one edge in vertices (2$^\wedge$n+1) \\
\hline
{\em terrain\+World\+Size} & The world size of each terrain instance \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a1ceb1403ef71bd8c5badd1861f17a566}\label{class_ogre_1_1_terrain_group_a1ceb1403ef71bd8c5badd1861f17a566}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!Terrain\+Group@{Terrain\+Group}}
\index{Terrain\+Group@{Terrain\+Group}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{Terrain\+Group()}{TerrainGroup()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+Group\+::\+Terrain\+Group (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{sm }\end{DoxyParamCaption})}



Alternate constructor. 

\begin{DoxyRemark}{Remarks}
You can O\+N\+LY use this constructor if you subsequently call load\+Group\+Definition to populate the rest. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a8fa89b425d4ce101a4f3973096d204b2}\label{class_ogre_1_1_terrain_group_a8fa89b425d4ce101a4f3973096d204b2}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!````~Terrain\+Group@{$\sim$\+Terrain\+Group}}
\index{````~Terrain\+Group@{$\sim$\+Terrain\+Group}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{$\sim$\+Terrain\+Group()}{~TerrainGroup()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Terrain\+Group\+::$\sim$\+Terrain\+Group (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a0b2e61a15cfdda3ed87b62dba174f576}\label{class_ogre_1_1_terrain_group_a0b2e61a15cfdda3ed87b62dba174f576}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Default\+Import\+Settings@{get\+Default\+Import\+Settings}}
\index{get\+Default\+Import\+Settings@{get\+Default\+Import\+Settings}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Default\+Import\+Settings()}{getDefaultImportSettings()}}
{\footnotesize\ttfamily virtual \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Terrain\+::\+Import\+Data}\& Ogre\+::\+Terrain\+Group\+::get\+Default\+Import\+Settings (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve a shared structure which will provide the base settings for all terrains created via this group. 

\begin{DoxyRemark}{Remarks}
All neighbouring terrains should have the same basic settings (particularly the size parameters) -\/ to avoid having to set the terrain import information more than once, you can retrieve the standard settings for this group here and modify them to your needs. Once you\textquotesingle{}ve done that you can use the shortcut methods in this class to create new terrain instances using these base settings (plus any per-\/instance settings you might want to use). 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
The structure returned from this method is intended for in-\/place modification, that\textquotesingle{}s why it is not const and there is no equivalent \textquotesingle{}set\textquotesingle{} method. You should not, however, change the alignment or any of the size parameters after you start constructing instances, since neighbouring terrains should have the same size \& alignment. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_abdcbba7565eea5b03a5d508e2aba07b2}\label{class_ogre_1_1_terrain_group_abdcbba7565eea5b03a5d508e2aba07b2}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Origin@{set\+Origin}}
\index{set\+Origin@{set\+Origin}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Origin()}{setOrigin()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::set\+Origin (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{pos }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define the centre position of the grid of terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a66a92b5e9a57c2bdedb53413b2e1cfb9}\label{class_ogre_1_1_terrain_group_a66a92b5e9a57c2bdedb53413b2e1cfb9}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Origin@{get\+Origin}}
\index{get\+Origin@{get\+Origin}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Origin()}{getOrigin()}}
{\footnotesize\ttfamily virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3}\& Ogre\+::\+Terrain\+Group\+::get\+Origin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve the centre position of the grid of terrain. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab18dbc2536fc791783e120191128ebab}\label{class_ogre_1_1_terrain_group_ab18dbc2536fc791783e120191128ebab}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Alignment@{get\+Alignment}}
\index{get\+Alignment@{get\+Alignment}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Alignment()}{getAlignment()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_terrain_aca4fcebfb7ed4684682347d325477e91}{Terrain\+::\+Alignment} Ogre\+::\+Terrain\+Group\+::get\+Alignment (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve the alignment of the grid of terrain (cannot be modified after construction). 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a1de8ba19022006b0c276fc5cd6d0aa34}\label{class_ogre_1_1_terrain_group_a1de8ba19022006b0c276fc5cd6d0aa34}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain\+World\+Size@{get\+Terrain\+World\+Size}}
\index{get\+Terrain\+World\+Size@{get\+Terrain\+World\+Size}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain\+World\+Size()}{getTerrainWorldSize()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Terrain\+Group\+::get\+Terrain\+World\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve the world size of each terrain instance. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a49fc3c6d80e6a06527cd44773d67d0a8}\label{class_ogre_1_1_terrain_group_a49fc3c6d80e6a06527cd44773d67d0a8}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Terrain\+World\+Size@{set\+Terrain\+World\+Size}}
\index{set\+Terrain\+World\+Size@{set\+Terrain\+World\+Size}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Terrain\+World\+Size()}{setTerrainWorldSize()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::set\+Terrain\+World\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{new\+World\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set the world size of terrain. 

\begin{DoxyNote}{Note}
This will cause the terrains to change position due to their size change 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em new\+World\+Size} & the new world size of each terrain instance \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a7a03112ea42d5962e140fcd9a0c17365}\label{class_ogre_1_1_terrain_group_a7a03112ea42d5962e140fcd9a0c17365}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain\+Size@{get\+Terrain\+Size}}
\index{get\+Terrain\+Size@{get\+Terrain\+Size}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain\+Size()}{getTerrainSize()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+Group\+::get\+Terrain\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve the size of each terrain instance in number of vertices down one side. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ae30c228ce95e1459276a461f0d11c511}\label{class_ogre_1_1_terrain_group_ae30c228ce95e1459276a461f0d11c511}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Terrain\+Size@{set\+Terrain\+Size}}
\index{set\+Terrain\+Size@{set\+Terrain\+Size}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Terrain\+Size()}{setTerrainSize()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::set\+Terrain\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{new\+Terrain\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set the size of each terrain instance in number of vertices down one side. 

\begin{DoxyNote}{Note}
This will cause the height data in each nested terrain to be bilinear filtered to fit the new data size. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em new\+Terrain\+Size} & the new map size of each terrain instance \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_aeb8e2b387e44622e51f5702e9a6c82a9}\label{class_ogre_1_1_terrain_group_aeb8e2b387e44622e51f5702e9a6c82a9}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Scene\+Manager@{get\+Scene\+Manager}}
\index{get\+Scene\+Manager@{get\+Scene\+Manager}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Scene\+Manager()}{getSceneManager()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}$\ast$ Ogre\+::\+Terrain\+Group\+::get\+Scene\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Retrieve the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} being used for this group. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}\label{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Filename\+Convention@{set\+Filename\+Convention}}
\index{set\+Filename\+Convention@{set\+Filename\+Convention}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Filename\+Convention()}{setFilenameConvention()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::set\+Filename\+Convention (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{prefix,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{extension }\end{DoxyParamCaption})}



Set the naming convention for file names in this terrain group. 

\begin{DoxyRemark}{Remarks}
You can more easily generate file names for saved / loaded terrain slots if you define a naming prefix. When you call \hyperlink{class_ogre_1_1_terrain_group_a04ca28f8d5f4d47da77da4b71492ff4c}{save\+All\+Terrains()}, all the terrain instances currently loaded will be saved to a file named $<$prefix$>$\+\_\+$<$index$>$.$<$extension$>$, where $<$index$>$ is given by packing the x and y coordinates of the entry into a 32-\/bit index (
\end{DoxyRemark}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ae56023a560b2b3e650d722e6e95e734c}{pack\+Index}). 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_aa464da8d2945b6e8ff569c68cd75a6a1}\label{class_ogre_1_1_terrain_group_aa464da8d2945b6e8ff569c68cd75a6a1}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Filename\+Prefix@{set\+Filename\+Prefix}}
\index{set\+Filename\+Prefix@{set\+Filename\+Prefix}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Filename\+Prefix()}{setFilenamePrefix()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::set\+Filename\+Prefix (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{prefix }\end{DoxyParamCaption})}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a77f531317a2af432f2628fdbb0601cf9}\label{class_ogre_1_1_terrain_group_a77f531317a2af432f2628fdbb0601cf9}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Filename\+Extension@{set\+Filename\+Extension}}
\index{set\+Filename\+Extension@{set\+Filename\+Extension}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Filename\+Extension()}{setFilenameExtension()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::set\+Filename\+Extension (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{extension }\end{DoxyParamCaption})}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a5a7edfd17f4989073ed453b3388c3ad1}\label{class_ogre_1_1_terrain_group_a5a7edfd17f4989073ed453b3388c3ad1}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Filename\+Prefix@{get\+Filename\+Prefix}}
\index{get\+Filename\+Prefix@{get\+Filename\+Prefix}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Filename\+Prefix()}{getFilenamePrefix()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+Group\+::get\+Filename\+Prefix (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a3654e0e53dc001cb0b5f4df3c58e4b02}\label{class_ogre_1_1_terrain_group_a3654e0e53dc001cb0b5f4df3c58e4b02}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Filename\+Extension@{get\+Filename\+Extension}}
\index{get\+Filename\+Extension@{get\+Filename\+Extension}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Filename\+Extension()}{getFilenameExtension()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+Group\+::get\+Filename\+Extension (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab6f752f831a9fdc36b64b1f0cc1d3da4}\label{class_ogre_1_1_terrain_group_ab6f752f831a9fdc36b64b1f0cc1d3da4}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Resource\+Group@{set\+Resource\+Group}}
\index{set\+Resource\+Group@{set\+Resource\+Group}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Resource\+Group()}{setResourceGroup()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::set\+Resource\+Group (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{grp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the resource group in which files will be located. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a18556f75aad155e5f354aa33ff0d021f}\label{class_ogre_1_1_terrain_group_a18556f75aad155e5f354aa33ff0d021f}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Resource\+Group@{get\+Resource\+Group}}
\index{get\+Resource\+Group@{get\+Resource\+Group}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Resource\+Group()}{getResourceGroup()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Terrain\+Group\+::get\+Resource\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the resource group in which files will be located. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a0dcd142d9931122fd8de4cd4ca9c4263}\label{class_ogre_1_1_terrain_group_a0dcd142d9931122fd8de4cd4ca9c4263}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define a \textquotesingle{}slot\textquotesingle{} in the terrain grid -\/ in this case to be loaded from a generated file name. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This method assumes that you want a file name to be generated from the naming convention that you have supplied (
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention}). If a file of that name isn\textquotesingle{}t found during loading, then a flat terrain is created instead at height 0. 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
\end{DoxyParams}


Referenced by Ogre\+::\+Terrain\+Paged\+World\+Section\+::\+Terrain\+Definer\+::define().

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a3339ab4895c8a8f5339dc789854abd65}\label{class_ogre_1_1_terrain_group_a3339ab4895c8a8f5339dc789854abd65}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{float}]{constant\+Height }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define a \textquotesingle{}slot\textquotesingle{} in the terrain grid -\/ in this case a flat terrain. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em constant\+Height} & The constant, uniform height that you want the terrain to start at \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a5f80864c75d98bf4796a9f925b65eebb}\label{class_ogre_1_1_terrain_group_a5f80864c75d98bf4796a9f925b65eebb}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{const \hyperlink{struct_ogre_1_1_terrain_1_1_import_data}{Terrain\+::\+Import\+Data} $\ast$}]{import\+Data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em import\+Data} & Import data -\/ this data is copied during the call so you may destroy your copy afterwards. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a1e6699ed42660600b9f4cef4ba9812f4}\label{class_ogre_1_1_terrain_group_a1e6699ed42660600b9f4cef4ba9812f4}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{const \hyperlink{class_ogre_1_1_image}{Image} $\ast$}]{img,  }\item[{const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} $\ast$}]{layers = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em img} & Heightfield image -\/ this data is copied during the call so you may destroy your copy afterwards. \\
\hline
{\em layers} & Optional texture layers to use (if not supplied, default import data layers will be used) -\/ this data is copied during the call so you may destroy your copy afterwards. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a72463e9fad2427e3e0b9d55c9fe1c7f7}\label{class_ogre_1_1_terrain_group_a72463e9fad2427e3e0b9d55c9fe1c7f7}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{const float $\ast$}]{p\+Float,  }\item[{const \hyperlink{class_ogre_1_1_terrain_a58751c7f151873a6e5cf03f59aa9ec47}{Terrain\+::\+Layer\+Instance\+List} $\ast$}]{layers = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em p\+Float} & Heights array \\
\hline
{\em layers} & Optional texture layers to use (if not supplied, default import data layers will be used) -\/ this data is copied during the call so you may destroy your copy afterwards. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a212c614fe05a4c09731b3c2d9227d1e2}\label{class_ogre_1_1_terrain_group_a212c614fe05a4c09731b3c2d9227d1e2}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!define\+Terrain@{define\+Terrain}}
\index{define\+Terrain@{define\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{define\+Terrain()}{defineTerrain()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::define\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Define the content of a \textquotesingle{}slot\textquotesingle{} in the terrain grid. 

\begin{DoxyRemark}{Remarks}
At this stage the terrain instance isn\textquotesingle{}t actually present in the grid, you\textquotesingle{}re merely expressing an intention for it to take its place there once it\textquotesingle{}s loaded. The reason we do it like this is to support background preparation of this terrain instance. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em filename} & The name of a file which fully defines the terrain (as written by \hyperlink{class_ogre_1_1_terrain_accbc5c9286d1a898653c1b27e04f6099}{Terrain\+::save}). Size settings from all files must agree. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ad1666853bba30ba6c5d98a5f2fc7d7ad}\label{class_ogre_1_1_terrain_group_ad1666853bba30ba6c5d98a5f2fc7d7ad}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!load\+All\+Terrains@{load\+All\+Terrains}}
\index{load\+All\+Terrains@{load\+All\+Terrains}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{load\+All\+Terrains()}{loadAllTerrains()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::load\+All\+Terrains (\begin{DoxyParamCaption}\item[{bool}]{synchronous = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Load any terrain instances that have been defined but not loaded yet. 


\begin{DoxyParams}{Parameters}
{\em synchronous} & Whether we should force this to happen entirely in the primary thread (default false, operations are threaded if possible) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_aa2b3aa6c682d8b60be016bc6e503bd3b}\label{class_ogre_1_1_terrain_group_aa2b3aa6c682d8b60be016bc6e503bd3b}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!load\+Terrain@{load\+Terrain}}
\index{load\+Terrain@{load\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{load\+Terrain()}{loadTerrain()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::load\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{bool}]{synchronous = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Load a specific terrain slot based on the definition that has already been supplied. 


\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
{\em synchronous} & Whether we should force this to happen entirely in the primary thread (default false, operations are threaded if possible) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_afce782965e3d453f9ceb97ae95780e6f}\label{class_ogre_1_1_terrain_group_afce782965e3d453f9ceb97ae95780e6f}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!unload\+Terrain@{unload\+Terrain}}
\index{unload\+Terrain@{unload\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{unload\+Terrain()}{unloadTerrain()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::unload\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Unload a specific terrain slot. 

\begin{DoxyRemark}{Remarks}
This destroys the \hyperlink{class_ogre_1_1_terrain}{Terrain} instance but retains the slot definition (so it would be reloaded next time you call \hyperlink{class_ogre_1_1_terrain_group_ad1666853bba30ba6c5d98a5f2fc7d7ad}{load\+All\+Terrains()} if you did not remove it beforehand). 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
While the definition of the terrain is kept, if you used import data to populate it, this will have been lost so repeat loading cannot occur. The only way to support repeat loading is via the \textquotesingle{}filename\textquotesingle{} option of define\+Terrain instead. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ac61b66e483e66bf0c860b6d9885aa5dd}\label{class_ogre_1_1_terrain_group_ac61b66e483e66bf0c860b6d9885aa5dd}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!remove\+Terrain@{remove\+Terrain}}
\index{remove\+Terrain@{remove\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{remove\+Terrain()}{removeTerrain()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Group\+::remove\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Remove a specific terrain slot. 

\begin{DoxyRemark}{Remarks}
This destroys any \hyperlink{class_ogre_1_1_terrain}{Terrain} instance at this position and also removes the definition, so it essentially no longer exists. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_afdf092661bbf77ba7e1d5080f2f3bbe2}\label{class_ogre_1_1_terrain_group_afdf092661bbf77ba7e1d5080f2f3bbe2}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!remove\+All\+Terrains@{remove\+All\+Terrains}}
\index{remove\+All\+Terrains@{remove\+All\+Terrains}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{remove\+All\+Terrains()}{removeAllTerrains()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::remove\+All\+Terrains (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Remove all terrain instances. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a04ca28f8d5f4d47da77da4b71492ff4c}\label{class_ogre_1_1_terrain_group_a04ca28f8d5f4d47da77da4b71492ff4c}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!save\+All\+Terrains@{save\+All\+Terrains}}
\index{save\+All\+Terrains@{save\+All\+Terrains}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{save\+All\+Terrains()}{saveAllTerrains()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::save\+All\+Terrains (\begin{DoxyParamCaption}\item[{bool}]{only\+If\+Modified,  }\item[{bool}]{replace\+Manual\+Filenames = {\ttfamily true} }\end{DoxyParamCaption})}



Save all terrain instances using the assigned file names, or via the filename convention. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_group_ac8af5ccd3d5a76c48bdbca955146eb7b}{set\+Filename\+Convention} 

\hyperlink{class_ogre_1_1_terrain_group_ab6f752f831a9fdc36b64b1f0cc1d3da4}{set\+Resource\+Group} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em only\+If\+Modified} & If true, only terrains that have been modified since load(), or since the last save(), will be saved. You want to set this to true if you loaded the terrain from these same files, but false if you defined them using some other input data since the files wouldn\textquotesingle{}t exist. \\
\hline
{\em replace\+Manual\+Filenames} & If true, replaces any manually defined filenames in the \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot_definition}{Terrain\+Slot\+Definition} with the generated names from the convention. This is recommended since it makes everything more consistent, although you might want to use manual filenames in the original definition to import previously separate data. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a191453da1ec1901dcdf90cc7355bde1f}\label{class_ogre_1_1_terrain_group_a191453da1ec1901dcdf90cc7355bde1f}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain\+Definition@{get\+Terrain\+Definition}}
\index{get\+Terrain\+Definition@{get\+Terrain\+Definition}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain\+Definition()}{getTerrainDefinition()}}
{\footnotesize\ttfamily virtual \hyperlink{struct_ogre_1_1_terrain_group_1_1_terrain_slot_definition}{Terrain\+Slot\+Definition}$\ast$ Ogre\+::\+Terrain\+Group\+::get\+Terrain\+Definition (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Get the definition of a slot in the terrain. 

\begin{DoxyRemark}{Remarks}
Definitions exist before the actual instances to allow background loading. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The definition, or null if nothing is in this slot. While this return value is not const, you should be careful about modifying it; it will have no effect unless you load the terrain afterwards, and can cause a race condition if you modify it while a background load is in progress. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_aee8ba536655db6cf95da75f339ca5b7c}\label{class_ogre_1_1_terrain_group_aee8ba536655db6cf95da75f339ca5b7c}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain@{get\+Terrain}}
\index{get\+Terrain@{get\+Terrain}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain()}{getTerrain()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_terrain}{Terrain}$\ast$ Ogre\+::\+Terrain\+Group\+::get\+Terrain (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Get the terrain instance at a given slot, if loaded. 


\begin{DoxyParams}{Parameters}
{\em x,y} & The coordinates of the terrain slot relative to the centre slot (signed). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The terrain, or null if no terrain is loaded in this slot (call get\+Terrain\+Definition if you want to access the definition before it is loaded). 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a6f1921036f2e2a12087c5ee792a03492}\label{class_ogre_1_1_terrain_group_a6f1921036f2e2a12087c5ee792a03492}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!free\+Temporary\+Resources@{free\+Temporary\+Resources}}
\index{free\+Temporary\+Resources@{free\+Temporary\+Resources}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{free\+Temporary\+Resources()}{freeTemporaryResources()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::free\+Temporary\+Resources (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



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

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_a4ee732f95cf2b3c4aacb709db48fad1e}{Terrain\+::free\+Temporary\+Resources} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_abde345652ad41719d6f87232096c281e}\label{class_ogre_1_1_terrain_group_abde345652ad41719d6f87232096c281e}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!update@{update}}
\index{update@{update}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{update()}{update()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::update (\begin{DoxyParamCaption}\item[{bool}]{synchronous = {\ttfamily false} }\end{DoxyParamCaption})}



Trigger the update process for all terrain instances. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_ae1ebf4ca9e17f173a0d516d92aed411e}{Terrain\+::update} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a0b073d61ff3bd590a3a1a928a896da9a}\label{class_ogre_1_1_terrain_group_a0b073d61ff3bd590a3a1a928a896da9a}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!update\+Geometry@{update\+Geometry}}
\index{update\+Geometry@{update\+Geometry}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{update\+Geometry()}{updateGeometry()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::update\+Geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Performs an update on all terrain geometry. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_a8e7fc528309dff0459e1558971a31d00}{Terrain\+::update\+Geometry} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_af9191a938f220f960128fdf7d30acc88}\label{class_ogre_1_1_terrain_group_af9191a938f220f960128fdf7d30acc88}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!update\+Derived\+Data@{update\+Derived\+Data}}
\index{update\+Derived\+Data@{update\+Derived\+Data}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{update\+Derived\+Data()}{updateDerivedData()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::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 all terrains (L\+OD, lighting) to reflect changed height data. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_terrain_aa11183930beb39da27e84ca66673ef00}{Terrain\+::update\+Derived\+Data} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a0ef435c6c37de37ae09c8874c8fe58dc}\label{class_ogre_1_1_terrain_group_a0ef435c6c37de37ae09c8874c8fe58dc}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}}
\index{get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Height\+At\+World\+Position()}{getHeightAtWorldPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+Group\+::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,  }\item[{\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$$\ast$}]{pp\+Terrain = {\ttfamily 0} }\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em x,y,z} & Position in world space. Positions will be clamped to the edge of the terrain \\
\hline
{\em pp\+Terrain} & Pointer to a pointer to a terrain which will be completed with the terrain that was found to resolve this query, or null if none were \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a404abe9c1da4ae4f794384ef2ddff94d}\label{class_ogre_1_1_terrain_group_a404abe9c1da4ae4f794384ef2ddff94d}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}}
\index{get\+Height\+At\+World\+Position@{get\+Height\+At\+World\+Position}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Height\+At\+World\+Position()}{getHeightAtWorldPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily float Ogre\+::\+Terrain\+Group\+::get\+Height\+At\+World\+Position (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{pos,  }\item[{\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$$\ast$}]{pp\+Terrain = {\ttfamily 0} }\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em pos} & Position in world space. Positions will be clamped to the edge of the terrain \\
\hline
{\em pp\+Terrain} & Pointer to a pointer to a terrain which will be completed with the terrain that was found to resolve this query, or null if none were \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ad3f690494e45dbe2ee5673e97afbc42d}\label{class_ogre_1_1_terrain_group_ad3f690494e45dbe2ee5673e97afbc42d}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!ray\+Intersects@{ray\+Intersects}}
\index{ray\+Intersects@{ray\+Intersects}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{ray\+Intersects()}{rayIntersects()}}
{\footnotesize\ttfamily \hyperlink{struct_ogre_1_1_terrain_group_1_1_ray_result}{Ray\+Result} Ogre\+::\+Terrain\+Group\+::ray\+Intersects (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_ray}{Ray} \&}]{ray,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{distance\+Limit = {\ttfamily 0} }\end{DoxyParamCaption}) const}



Test for intersection of a given ray with any terrain in the group. 

If the ray hits a terrain, the point of intersection and terrain instance is returned. 
\begin{DoxyParams}{Parameters}
{\em ray} & The ray to test for intersection \\
\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 result structure which contains whether the ray hit a 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 terrain data occurs. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a1f7a354c649351e5796ca71b764b03b6}\label{class_ogre_1_1_terrain_group_a1f7a354c649351e5796ca71b764b03b6}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!box\+Intersects@{box\+Intersects}}
\index{box\+Intersects@{box\+Intersects}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{box\+Intersects()}{boxIntersects()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::box\+Intersects (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_axis_aligned_box}{Axis\+Aligned\+Box} \&}]{box,  }\item[{\hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Terrain\+List} $\ast$}]{result\+List }\end{DoxyParamCaption}) const}



Test intersection of a box with the terrain. 

\begin{DoxyRemark}{Remarks}
Tests an A\+A\+BB for overlap with a terrain bounding box. Note that this does not mean that the box touches the terrain itself, just the bounding box for the terrain. You can use this to get region results for further testing or use (e.\+g. painting areas). 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em box} & The A\+A\+BB you want to test in world units \\
\hline
{\em result\+List} & Pointer to a list of terrain pointers which will be updated to include just the terrains that overlap \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a11adbfd073f8384ba2a8713f15787380}\label{class_ogre_1_1_terrain_group_a11adbfd073f8384ba2a8713f15787380}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!sphere\+Intersects@{sphere\+Intersects}}
\index{sphere\+Intersects@{sphere\+Intersects}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{sphere\+Intersects()}{sphereIntersects()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::sphere\+Intersects (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_sphere}{Sphere} \&}]{sphere,  }\item[{\hyperlink{class_ogre_1_1_terrain_group_a3f3ae22bcd04cf0e5e54e9975f8096a1}{Terrain\+List} $\ast$}]{result\+List }\end{DoxyParamCaption}) const}



Test intersection of a sphere with the terrain. 

\begin{DoxyRemark}{Remarks}
Tests a sphere for overlap with a terrain bounding box. Note that this does not mean that the sphere touches the terrain itself, just the bounding box for the terrain. You can use this to get region results for further testing or use (e.\+g. painting areas). 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em sphere} & The sphere you want to test in world units \\
\hline
{\em result\+List} & Pointer to a list of terrain pointers which will be updated to include just the terrains that overlap \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a5719684dae085bfdbe81564151fdea1d}\label{class_ogre_1_1_terrain_group_a5719684dae085bfdbe81564151fdea1d}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!convert\+World\+Position\+To\+Terrain\+Slot@{convert\+World\+Position\+To\+Terrain\+Slot}}
\index{convert\+World\+Position\+To\+Terrain\+Slot@{convert\+World\+Position\+To\+Terrain\+Slot}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{convert\+World\+Position\+To\+Terrain\+Slot()}{convertWorldPositionToTerrainSlot()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::convert\+World\+Position\+To\+Terrain\+Slot (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{pos,  }\item[{long $\ast$}]{x,  }\item[{long $\ast$}]{y }\end{DoxyParamCaption}) const}



Convert a world position to terrain slot coordinates. 


\begin{DoxyParams}{Parameters}
{\em pos} & The world position \\
\hline
{\em x,y} & Pointers to the coordinates to be completed. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a09be3d6866674b23e390ea6d70db0ae5}\label{class_ogre_1_1_terrain_group_a09be3d6866674b23e390ea6d70db0ae5}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!convert\+Terrain\+Slot\+To\+World\+Position@{convert\+Terrain\+Slot\+To\+World\+Position}}
\index{convert\+Terrain\+Slot\+To\+World\+Position@{convert\+Terrain\+Slot\+To\+World\+Position}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{convert\+Terrain\+Slot\+To\+World\+Position()}{convertTerrainSlotToWorldPosition()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::convert\+Terrain\+Slot\+To\+World\+Position (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} $\ast$}]{pos }\end{DoxyParamCaption}) const}



Convert a slot location to a world position at the centre. 


\begin{DoxyParams}{Parameters}
{\em x,y} & The slot coordinates \\
\hline
{\em pos} & Pointer to the world position to be completed \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a9c8223383679e583761c8af009cd1cf8}\label{class_ogre_1_1_terrain_group_a9c8223383679e583761c8af009cd1cf8}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!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\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{is\+Derived\+Data\+Update\+In\+Progress()}{isDerivedDataUpdateInProgress()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Group\+::is\+Derived\+Data\+Update\+In\+Progress (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Calls \hyperlink{class_ogre_1_1_terrain_a518a4dcf0c880eeadc3d0ae6ff4aa5b1}{Terrain\+::is\+Derived\+Data\+Update\+In\+Progress} on each loaded instance and returns true if any of them are undergoing a derived update. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab3a50caf08ce5049ed0a15c0f610523d}\label{class_ogre_1_1_terrain_group_ab3a50caf08ce5049ed0a15c0f610523d}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain\+Iterator@{get\+Terrain\+Iterator}}
\index{get\+Terrain\+Iterator@{get\+Terrain\+Iterator}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain\+Iterator()}{getTerrainIterator()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_group_a0ede78efc787db283ade7fdf25f85fe5}{Terrain\+Iterator} Ogre\+::\+Terrain\+Group\+::get\+Terrain\+Iterator (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get an iterator over the defined terrains. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a258a6c8f9655fc48fd4afbfaf9f650dd}\label{class_ogre_1_1_terrain_group_a258a6c8f9655fc48fd4afbfaf9f650dd}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Terrain\+Iterator@{get\+Terrain\+Iterator}}
\index{get\+Terrain\+Iterator@{get\+Terrain\+Iterator}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Terrain\+Iterator()}{getTerrainIterator()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_group_a715d18edfe80acd905f82e69145b58ce}{Const\+Terrain\+Iterator} Ogre\+::\+Terrain\+Group\+::get\+Terrain\+Iterator (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get an iterator over the defined terrains (const) 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a008f51c172bd858cca8763af865f3fa1}\label{class_ogre_1_1_terrain_group_a008f51c172bd858cca8763af865f3fa1}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!can\+Handle\+Request@{can\+Handle\+Request}}
\index{can\+Handle\+Request@{can\+Handle\+Request}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{can\+Handle\+Request()}{canHandleRequest()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Group\+::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_group_a28e769b1bb49906de087be411ae97001}\label{class_ogre_1_1_terrain_group_a28e769b1bb49906de087be411ae97001}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!handle\+Request@{handle\+Request}}
\index{handle\+Request@{handle\+Request}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{handle\+Request()}{handleRequest()}}
{\footnotesize\ttfamily \hyperlink{struct_ogre_1_1_work_queue_1_1_response}{Work\+Queue\+::\+Response}$\ast$ Ogre\+::\+Terrain\+Group\+::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_group_ad608848047850ff730ef870457b7e14f}\label{class_ogre_1_1_terrain_group_ad608848047850ff730ef870457b7e14f}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!can\+Handle\+Response@{can\+Handle\+Response}}
\index{can\+Handle\+Response@{can\+Handle\+Response}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{can\+Handle\+Response()}{canHandleResponse()}}
{\footnotesize\ttfamily bool Ogre\+::\+Terrain\+Group\+::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_group_a5d062f88928dd1a572dc7a411b07457b}\label{class_ogre_1_1_terrain_group_a5d062f88928dd1a572dc7a411b07457b}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!handle\+Response@{handle\+Response}}
\index{handle\+Response@{handle\+Response}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{handle\+Response()}{handleResponse()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::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_group_ae56023a560b2b3e650d722e6e95e734c}\label{class_ogre_1_1_terrain_group_ae56023a560b2b3e650d722e6e95e734c}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!pack\+Index@{pack\+Index}}
\index{pack\+Index@{pack\+Index}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{pack\+Index()}{packIndex()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+Group\+::pack\+Index (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Convert coordinates to a packed integer index. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a041018a20d3605dd54bdbdbca20df587}\label{class_ogre_1_1_terrain_group_a041018a20d3605dd54bdbdbca20df587}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!unpack\+Index@{unpack\+Index}}
\index{unpack\+Index@{unpack\+Index}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{unpack\+Index()}{unpackIndex()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::unpack\+Index (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{key,  }\item[{long $\ast$}]{x,  }\item[{long $\ast$}]{y }\end{DoxyParamCaption})}



Convert a packed integer index to coordinates. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a80e7857e742770fd6f6c97d3d68461c8}\label{class_ogre_1_1_terrain_group_a80e7857e742770fd6f6c97d3d68461c8}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!generate\+Filename@{generate\+Filename}}
\index{generate\+Filename@{generate\+Filename}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{generate\+Filename()}{generateFilename()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} Ogre\+::\+Terrain\+Group\+::generate\+Filename (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption}) const}



Generate a file name based on the current naming convention. 

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



Save the group data only in native form to a file. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a653b5492ff3f70b0363c124bdc2824ad}\label{class_ogre_1_1_terrain_group_a653b5492ff3f70b0363c124bdc2824ad}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!save\+Group\+Definition@{save\+Group\+Definition}}
\index{save\+Group\+Definition@{save\+Group\+Definition}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{save\+Group\+Definition()}{saveGroupDefinition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::save\+Group\+Definition (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{stream }\end{DoxyParamCaption})}



Save the group data only in native form to a serializing stream. 

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



Load the group definition only in native form from a file. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab2024c1b3890def8d88aa3a0436edf66}\label{class_ogre_1_1_terrain_group_ab2024c1b3890def8d88aa3a0436edf66}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!load\+Group\+Definition@{load\+Group\+Definition}}
\index{load\+Group\+Definition@{load\+Group\+Definition}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{load\+Group\+Definition()}{loadGroupDefinition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::load\+Group\+Definition (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} \&}]{stream }\end{DoxyParamCaption})}



Load the group definition only in native form from a serializing stream. 

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



Loads terrain\textquotesingle{}s next L\+OD level. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a31a307cb267f071a72defcfad0598745}\label{class_ogre_1_1_terrain_group_a31a307cb267f071a72defcfad0598745}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!decrease\+Lod\+Level@{decrease\+Lod\+Level}}
\index{decrease\+Lod\+Level@{decrease\+Lod\+Level}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{decrease\+Lod\+Level()}{decreaseLodLevel()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::decrease\+Lod\+Level (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y }\end{DoxyParamCaption})}



Removes terrain\textquotesingle{}s highest L\+OD level. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ab9136e3fb9fd9b6e1421ad454fe7d53c}\label{class_ogre_1_1_terrain_group_ab9136e3fb9fd9b6e1421ad454fe7d53c}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!set\+Auto\+Update\+Lod@{set\+Auto\+Update\+Lod}}
\index{set\+Auto\+Update\+Lod@{set\+Auto\+Update\+Lod}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{set\+Auto\+Update\+Lod()}{setAutoUpdateLod()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::set\+Auto\+Update\+Lod (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_auto_update_lod}{Terrain\+Auto\+Update\+Lod} $\ast$}]{updater }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_ac8d34ec8ee538ca6d917c7a6302310fd}\label{class_ogre_1_1_terrain_group_ac8d34ec8ee538ca6d917c7a6302310fd}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!auto\+Update\+Lod@{auto\+Update\+Lod}}
\index{auto\+Update\+Lod@{auto\+Update\+Lod}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{auto\+Update\+Lod()}{autoUpdateLod()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::auto\+Update\+Lod (\begin{DoxyParamCaption}\item[{long}]{x,  }\item[{long}]{y,  }\item[{bool}]{synchronous,  }\item[{const \hyperlink{class_ogre_1_1_any}{Any} \&}]{data }\end{DoxyParamCaption})}



Automatically checks if terrain\textquotesingle{}s L\+OD level needs to be updated. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a4c6fa825170af7191d061c273349cd88}\label{class_ogre_1_1_terrain_group_a4c6fa825170af7191d061c273349cd88}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!auto\+Update\+Lod\+All@{auto\+Update\+Lod\+All}}
\index{auto\+Update\+Lod\+All@{auto\+Update\+Lod\+All}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{auto\+Update\+Lod\+All()}{autoUpdateLodAll()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Group\+::auto\+Update\+Lod\+All (\begin{DoxyParamCaption}\item[{bool}]{synchronous,  }\item[{const \hyperlink{class_ogre_1_1_any}{Any} \&}]{data }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_aa6f3102a07e1768367b3c2e2c093c272}\label{class_ogre_1_1_terrain_group_aa6f3102a07e1768367b3c2e2c093c272}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!get\+Num\+Terrain\+Prepare\+Requests@{get\+Num\+Terrain\+Prepare\+Requests}}
\index{get\+Num\+Terrain\+Prepare\+Requests@{get\+Num\+Terrain\+Prepare\+Requests}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{get\+Num\+Terrain\+Prepare\+Requests()}{getNumTerrainPrepareRequests()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+Terrain\+Group\+::get\+Num\+Terrain\+Prepare\+Requests (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the number of terrains that are still waiting for the \hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{Terrain\+::prepare()} to be called. 

\begin{DoxyNote}{Note}
\hyperlink{class_ogre_1_1_terrain_aaf6c29ba4225758313190a53bb12e60c}{Terrain\+::prepare()} happens in background thread so the actual call will be completed a bit before this returns the reduced number.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Amount of terrain prepare requests pending. 
\end{DoxyReturn}


\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_group_a93836a9bf0faed8a783e65a6f494a633}\label{class_ogre_1_1_terrain_group_a93836a9bf0faed8a783e65a6f494a633}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}}
\index{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST@{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}{WORKQUEUE\_LOAD\_REQUEST}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} Ogre\+::\+Terrain\+Group\+::\+W\+O\+R\+K\+Q\+U\+E\+U\+E\+\_\+\+L\+O\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_terrain_group_af5d1ab56ff789b227e25e2011877c224}\label{class_ogre_1_1_terrain_group_af5d1ab56ff789b227e25e2011877c224}} 
\index{Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}!C\+H\+U\+N\+K\+\_\+\+ID@{C\+H\+U\+N\+K\+\_\+\+ID}}
\index{C\+H\+U\+N\+K\+\_\+\+ID@{C\+H\+U\+N\+K\+\_\+\+ID}!Ogre\+::\+Terrain\+Group@{Ogre\+::\+Terrain\+Group}}
\subsubsection{\texorpdfstring{C\+H\+U\+N\+K\+\_\+\+ID}{CHUNK\_ID}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Terrain\+Group\+::\+C\+H\+U\+N\+K\+\_\+\+ID\hspace{0.3cm}{\ttfamily [static]}}

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



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