\hypertarget{group___terrain}{}\section{Terrain}
\label{group___terrain}\index{Terrain@{Terrain}}


Editable Terrain System with L\+OD, serialization and \hyperlink{group___paging}{Paging} support.  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_terrain}{Ogre\+::\+Terrain}
\begin{DoxyCompactList}\small\item\em The main containing class for a chunk of terrain. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_auto_update_lod}{Ogre\+::\+Terrain\+Auto\+Update\+Lod}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_terrain}{Terrain} automatic L\+OD loading. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_auto_update_lod_by_distance}{Ogre\+::\+Terrain\+Auto\+Update\+Lod\+By\+Distance}
\begin{DoxyCompactList}\small\item\em Class implementing \hyperlink{class_ogre_1_1_terrain_auto_update_lod}{Terrain\+Auto\+Update\+Lod} interface. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_auto_update_lod_factory}{Ogre\+::\+Terrain\+Auto\+Update\+Lod\+Factory}
\item 
class \hyperlink{class_ogre_1_1_terrain_global_options}{Ogre\+::\+Terrain\+Global\+Options}
\begin{DoxyCompactList}\small\item\em Options class which just stores default options for the terrain. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_group}{Ogre\+::\+Terrain\+Group}
\begin{DoxyCompactList}\small\item\em Helper class to assist you in managing multiple terrain instances that are connected to each other. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Ogre\+::\+Terrain\+Layer\+Blend\+Map}
\begin{DoxyCompactList}\small\item\em Class exposing an interface to a blend map for a given layer. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Ogre\+::\+Terrain\+Layer\+Declaration}
\begin{DoxyCompactList}\small\item\em The definition of the information each layer will contain in this terrain. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Ogre\+::\+Terrain\+Layer\+Sampler}
\begin{DoxyCompactList}\small\item\em Description of a sampler that will be used with each layer. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Ogre\+::\+Terrain\+Layer\+Sampler\+Element}
\begin{DoxyCompactList}\small\item\em Information about one element of a sampler / texture within a layer. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_lod_manager}{Ogre\+::\+Terrain\+Lod\+Manager}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_terrain}{Terrain} L\+OD data manager. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_material_generator}{Ogre\+::\+Terrain\+Material\+Generator}
\begin{DoxyCompactList}\small\item\em Class that provides functionality to generate materials for use with a terrain. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_material_generator_a}{Ogre\+::\+Terrain\+Material\+GeneratorA}
\begin{DoxyCompactList}\small\item\em A \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} which can cope with normal mapped, specular mapped terrain. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_paged_world_section}{Ogre\+::\+Terrain\+Paged\+World\+Section}
\begin{DoxyCompactList}\small\item\em A world section which includes paged terrain. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_paging}{Ogre\+::\+Terrain\+Paging}
\begin{DoxyCompactList}\small\item\em This class is the \textquotesingle{}core\textquotesingle{} class for paging terrain, that will integrate with the larger paging system and provide the appropriate utility classes required. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_terrain_quad_tree_node}{Ogre\+::\+Terrain\+Quad\+Tree\+Node}
\begin{DoxyCompactList}\small\item\em A node in a quad tree used to store a patch of terrain. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Terrain\+Layer\+Blend\+Map} $\ast$ $>$ \hyperlink{group___terrain_ga13ef117fcdcdaf0c609c62f297d94c16}{Ogre\+::\+Terrain\+Layer\+Blend\+Map\+List}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Terrain\+Layer\+Sampler\+Element} $>$ \hyperlink{group___terrain_gab3e9ec2172cfcad003ca034009369271}{Ogre\+::\+Terrain\+Layer\+Sampler\+Element\+List}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler} $>$ \hyperlink{group___terrain_ga8bc95785d736a01b4140f9a427e9b630}{Ogre\+::\+Terrain\+Layer\+Sampler\+List}
\item 
typedef \hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}$<$ \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} $>$ \hyperlink{group___terrain_ga152d33cadca984511f2c0459562c7b0b}{Ogre\+::\+Terrain\+Material\+Generator\+Ptr}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group___terrain_ga632903bb3f8ee3d838b17177bfb7cbcc}{Ogre\+::\+Technique\+Type} \{ \hyperlink{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca5b8d4b96e0e0882f2bbcfebc98cf393d}{Ogre\+::\+H\+I\+G\+H\+\_\+\+L\+OD}, 
\hyperlink{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca4a929fbb87f8f18c5d46dc10fb9e73c3}{Ogre\+::\+L\+O\+W\+\_\+\+L\+OD}, 
\hyperlink{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca654c39dbe72fc28d943bfa476b54867d}{Ogre\+::\+R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP}
 \}
\item 
enum \hyperlink{group___terrain_ga4e7b31c45dc1afba816f7d9bc71a301b}{Ogre\+::\+Terrain\+Auto\+Update\+Lod\+Strategy} \{ \hyperlink{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301baf4ad13488a8b22a4309fdd0a7fb70db8}{Ogre\+::\+N\+O\+NE} = 0, 
\hyperlink{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301ba8b40189aba8887f4cdb96d967cd80460}{Ogre\+::\+B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE} = 1
 \}
\item 
enum \hyperlink{group___terrain_gad6e8e88c8f2109b45648fd6f3ec00a84}{Ogre\+::\+Terrain\+Layer\+Sampler\+Semantic} \{ \hyperlink{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84a6407050de320fbf7c06c77bb97e647e7}{Ogre\+::\+T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO} = 0, 
\hyperlink{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae90f168a77e4047af27e14ca52d8205a}{Ogre\+::\+T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL} = 1, 
\hyperlink{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84adeb418649d89cf961e3f60b009a5e5fb}{Ogre\+::\+T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT} = 2, 
\hyperlink{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae7b29f10d891aac2a3e41c71f7fa96c7}{Ogre\+::\+T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR} = 3
 \}\begin{DoxyCompactList}\small\item\em Enumeration of types of data that can be read from textures that are specific to a given layer. \end{DoxyCompactList}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Editable Terrain System with L\+OD, serialization and \hyperlink{group___paging}{Paging} support. 

Some details on the terrain L\+OD manager.

Some details on the terrain component.

Some details on the terrain auto load.

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group___terrain_ga13ef117fcdcdaf0c609c62f297d94c16}\label{group___terrain_ga13ef117fcdcdaf0c609c62f297d94c16}} 
\index{Terrain@{Terrain}!Terrain\+Layer\+Blend\+Map\+List@{Terrain\+Layer\+Blend\+Map\+List}}
\index{Terrain\+Layer\+Blend\+Map\+List@{Terrain\+Layer\+Blend\+Map\+List}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Layer\+Blend\+Map\+List}{TerrainLayerBlendMapList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{class_ogre_1_1_terrain_layer_blend_map}{Terrain\+Layer\+Blend\+Map}$\ast$$>$ \hyperlink{group___terrain_ga13ef117fcdcdaf0c609c62f297d94c16}{Ogre\+::\+Terrain\+Layer\+Blend\+Map\+List}}

\mbox{\Hypertarget{group___terrain_gab3e9ec2172cfcad003ca034009369271}\label{group___terrain_gab3e9ec2172cfcad003ca034009369271}} 
\index{Terrain@{Terrain}!Terrain\+Layer\+Sampler\+Element\+List@{Terrain\+Layer\+Sampler\+Element\+List}}
\index{Terrain\+Layer\+Sampler\+Element\+List@{Terrain\+Layer\+Sampler\+Element\+List}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Layer\+Sampler\+Element\+List}{TerrainLayerSamplerElementList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_terrain_layer_sampler_element}{Terrain\+Layer\+Sampler\+Element}$>$ \hyperlink{group___terrain_gab3e9ec2172cfcad003ca034009369271}{Ogre\+::\+Terrain\+Layer\+Sampler\+Element\+List}}

\mbox{\Hypertarget{group___terrain_ga8bc95785d736a01b4140f9a427e9b630}\label{group___terrain_ga8bc95785d736a01b4140f9a427e9b630}} 
\index{Terrain@{Terrain}!Terrain\+Layer\+Sampler\+List@{Terrain\+Layer\+Sampler\+List}}
\index{Terrain\+Layer\+Sampler\+List@{Terrain\+Layer\+Sampler\+List}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Layer\+Sampler\+List}{TerrainLayerSamplerList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_terrain_layer_sampler}{Terrain\+Layer\+Sampler}$>$ \hyperlink{group___terrain_ga8bc95785d736a01b4140f9a427e9b630}{Ogre\+::\+Terrain\+Layer\+Sampler\+List}}

\mbox{\Hypertarget{group___terrain_ga152d33cadca984511f2c0459562c7b0b}\label{group___terrain_ga152d33cadca984511f2c0459562c7b0b}} 
\index{Terrain@{Terrain}!Terrain\+Material\+Generator\+Ptr@{Terrain\+Material\+Generator\+Ptr}}
\index{Terrain\+Material\+Generator\+Ptr@{Terrain\+Material\+Generator\+Ptr}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Material\+Generator\+Ptr}{TerrainMaterialGeneratorPtr}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}$<$\hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator}$>$ \hyperlink{group___terrain_ga152d33cadca984511f2c0459562c7b0b}{Ogre\+::\+Terrain\+Material\+Generator\+Ptr}}



\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group___terrain_ga4e7b31c45dc1afba816f7d9bc71a301b}\label{group___terrain_ga4e7b31c45dc1afba816f7d9bc71a301b}} 
\index{Terrain@{Terrain}!Terrain\+Auto\+Update\+Lod\+Strategy@{Terrain\+Auto\+Update\+Lod\+Strategy}}
\index{Terrain\+Auto\+Update\+Lod\+Strategy@{Terrain\+Auto\+Update\+Lod\+Strategy}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Auto\+Update\+Lod\+Strategy}{TerrainAutoUpdateLodStrategy}}
{\footnotesize\ttfamily enum \hyperlink{group___terrain_ga4e7b31c45dc1afba816f7d9bc71a301b}{Ogre\+::\+Terrain\+Auto\+Update\+Lod\+Strategy}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+O\+NE@{N\+O\+NE}!Terrain@{Terrain}}\index{Terrain@{Terrain}!N\+O\+NE@{N\+O\+NE}}}\mbox{\Hypertarget{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301baf4ad13488a8b22a4309fdd0a7fb70db8}\label{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301baf4ad13488a8b22a4309fdd0a7fb70db8}} 
N\+O\+NE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE@{B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE}!Terrain@{Terrain}}\index{Terrain@{Terrain}!B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE@{B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE}}}\mbox{\Hypertarget{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301ba8b40189aba8887f4cdb96d967cd80460}\label{group___terrain_gga4e7b31c45dc1afba816f7d9bc71a301ba8b40189aba8887f4cdb96d967cd80460}} 
B\+Y\+\_\+\+D\+I\+S\+T\+A\+N\+CE&\\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{group___terrain_gad6e8e88c8f2109b45648fd6f3ec00a84}\label{group___terrain_gad6e8e88c8f2109b45648fd6f3ec00a84}} 
\index{Terrain@{Terrain}!Terrain\+Layer\+Sampler\+Semantic@{Terrain\+Layer\+Sampler\+Semantic}}
\index{Terrain\+Layer\+Sampler\+Semantic@{Terrain\+Layer\+Sampler\+Semantic}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Terrain\+Layer\+Sampler\+Semantic}{TerrainLayerSamplerSemantic}}
{\footnotesize\ttfamily enum \hyperlink{group___terrain_gad6e8e88c8f2109b45648fd6f3ec00a84}{Ogre\+::\+Terrain\+Layer\+Sampler\+Semantic}}



Enumeration of types of data that can be read from textures that are specific to a given layer. 

Notice that global texture information such as shadows and terrain normals are not represented here because they are not a per-\/layer attribute, and blending is stored in packed texture structures which are stored separately. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO@{T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO}!Terrain@{Terrain}}\index{Terrain@{Terrain}!T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO@{T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO}}}\mbox{\Hypertarget{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84a6407050de320fbf7c06c77bb97e647e7}\label{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84a6407050de320fbf7c06c77bb97e647e7}} 
T\+L\+S\+S\+\_\+\+A\+L\+B\+E\+DO&Albedo colour (diffuse reflectance colour) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL@{T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL}!Terrain@{Terrain}}\index{Terrain@{Terrain}!T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL@{T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL}}}\mbox{\Hypertarget{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae90f168a77e4047af27e14ca52d8205a}\label{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae90f168a77e4047af27e14ca52d8205a}} 
T\+L\+S\+S\+\_\+\+N\+O\+R\+M\+AL&Tangent-\/space normal information from a detail texture. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT@{T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT}!Terrain@{Terrain}}\index{Terrain@{Terrain}!T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT@{T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT}}}\mbox{\Hypertarget{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84adeb418649d89cf961e3f60b009a5e5fb}\label{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84adeb418649d89cf961e3f60b009a5e5fb}} 
T\+L\+S\+S\+\_\+\+H\+E\+I\+G\+HT&Height information for the detail texture. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR@{T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR}!Terrain@{Terrain}}\index{Terrain@{Terrain}!T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR@{T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR}}}\mbox{\Hypertarget{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae7b29f10d891aac2a3e41c71f7fa96c7}\label{group___terrain_ggad6e8e88c8f2109b45648fd6f3ec00a84ae7b29f10d891aac2a3e41c71f7fa96c7}} 
T\+L\+S\+S\+\_\+\+S\+P\+E\+C\+U\+L\+AR&Specular reflectance. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{group___terrain_ga632903bb3f8ee3d838b17177bfb7cbcc}\label{group___terrain_ga632903bb3f8ee3d838b17177bfb7cbcc}} 
\index{Terrain@{Terrain}!Technique\+Type@{Technique\+Type}}
\index{Technique\+Type@{Technique\+Type}!Terrain@{Terrain}}
\subsubsection{\texorpdfstring{Technique\+Type}{TechniqueType}}
{\footnotesize\ttfamily enum \hyperlink{group___terrain_ga632903bb3f8ee3d838b17177bfb7cbcc}{Ogre\+::\+Technique\+Type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{H\+I\+G\+H\+\_\+\+L\+OD@{H\+I\+G\+H\+\_\+\+L\+OD}!Terrain@{Terrain}}\index{Terrain@{Terrain}!H\+I\+G\+H\+\_\+\+L\+OD@{H\+I\+G\+H\+\_\+\+L\+OD}}}\mbox{\Hypertarget{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca5b8d4b96e0e0882f2bbcfebc98cf393d}\label{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca5b8d4b96e0e0882f2bbcfebc98cf393d}} 
H\+I\+G\+H\+\_\+\+L\+OD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+W\+\_\+\+L\+OD@{L\+O\+W\+\_\+\+L\+OD}!Terrain@{Terrain}}\index{Terrain@{Terrain}!L\+O\+W\+\_\+\+L\+OD@{L\+O\+W\+\_\+\+L\+OD}}}\mbox{\Hypertarget{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca4a929fbb87f8f18c5d46dc10fb9e73c3}\label{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca4a929fbb87f8f18c5d46dc10fb9e73c3}} 
L\+O\+W\+\_\+\+L\+OD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP@{R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP}!Terrain@{Terrain}}\index{Terrain@{Terrain}!R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP@{R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP}}}\mbox{\Hypertarget{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca654c39dbe72fc28d943bfa476b54867d}\label{group___terrain_gga632903bb3f8ee3d838b17177bfb7cbcca654c39dbe72fc28d943bfa476b54867d}} 
R\+E\+N\+D\+E\+R\+\_\+\+C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+M\+AP&\\
\hline

\end{DoxyEnumFields}
