\hypertarget{class_ogre_1_1_terrain_material_generator_a}{}\section{Ogre\+:\+:Terrain\+Material\+GeneratorA Class Reference}
\label{class_ogre_1_1_terrain_material_generator_a}\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}


A \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} which can cope with normal mapped, specular mapped terrain.  




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



Inheritance diagram for Ogre\+:\+:Terrain\+Material\+GeneratorA\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=254pt]{class_ogre_1_1_terrain_material_generator_a__inherit__graph}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_terrain_material_generator_a_1_1_s_m2_profile}{S\+M2\+Profile}
\begin{DoxyCompactList}\small\item\em Shader model 2 profile target. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile} $\ast$ $>$ \hyperlink{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}{Profile\+List}
\begin{DoxyCompactList}\small\item\em List of profiles -\/ NB should be ordered in descending complexity. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_terrain_material_generator_a_ac41cdd05e80c7eed45f59a16e13ec740}{Terrain\+Material\+GeneratorA} ()
\item 
virtual \hyperlink{class_ogre_1_1_terrain_material_generator_a_af5c5973e8e5c79a9134fad7b5a4f7212}{$\sim$\+Terrain\+Material\+GeneratorA} ()
\item 
\hyperlink{class_ogre_1_1_texture}{Texture} $\ast$ \hyperlink{class_ogre_1_1_terrain_material_generator_a87dca7208407e824a01d5e07ea92688f}{\+\_\+get\+Composite\+Map\+R\+TT} ()
\item 
void \hyperlink{class_ogre_1_1_terrain_material_generator_ae6cdf5dafc5bbea8e8241b54689798de}{\+\_\+mark\+Changed} ()
\begin{DoxyCompactList}\small\item\em Internal method -\/ indicates that a change has been made that would require material regeneration. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_abbe57c1cdc0ff8acb1ab5e837f0aa573}{\+\_\+render\+Composite\+Map} (size\+\_\+t size, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&mat, const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \&dest\+Composite\+Map)
\begin{DoxyCompactList}\small\item\em Helper method to render a composite map. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_terrain_material_generator_a7f9892827501c4907da1775e3c0c067b}{can\+Generate\+Using\+Declaration} (const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&decl)
\begin{DoxyCompactList}\small\item\em Whether this generator can generate a material for a given declaration. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \hyperlink{class_ogre_1_1_terrain_material_generator_aa9e7fb7cee77cc1bb1d88fa6c3de7f5e}{generate} (const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain)
\begin{DoxyCompactList}\small\item\em Generate a material for the given terrain using the active profile. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \hyperlink{class_ogre_1_1_terrain_material_generator_acaa6cd4b06a385638fed2603480d8445}{generate\+For\+Composite\+Map} (const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain)
\begin{DoxyCompactList}\small\item\em Generate a material for the given composite map of the terrain using the active profile. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile} $\ast$ \hyperlink{class_ogre_1_1_terrain_material_generator_a22dc4764b52343a6506675983daa2b74}{get\+Active\+Profile} () const
\begin{DoxyCompactList}\small\item\em Get the active profile. \end{DoxyCompactList}\item 
unsigned long long int \hyperlink{class_ogre_1_1_terrain_material_generator_a7c66198986a8b44314be2aedcfbaf4fe}{get\+Change\+Count} () const
\begin{DoxyCompactList}\small\item\em Returns the number of times the generator has undergone a change which would require materials to be regenerated. \end{DoxyCompactList}\item 
virtual unsigned int \hyperlink{class_ogre_1_1_terrain_material_generator_ac4df6fc0a5310ac806299ebf607afe9d}{get\+Debug\+Level} () const
\begin{DoxyCompactList}\small\item\em Get the debug level of the material. \end{DoxyCompactList}\item 
virtual const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \& \hyperlink{class_ogre_1_1_terrain_material_generator_ac2aa4779027a97f70c0fb3b845fd499d}{get\+Layer\+Declaration} () const
\begin{DoxyCompactList}\small\item\em Get the layer declaration that this material generator operates with. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_terrain_material_generator_a6402e1c3e9770043be75b845abbdc79a}{get\+Max\+Layers} (const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain) const
\begin{DoxyCompactList}\small\item\em Get the maximum number of layers supported with the given terrain. \end{DoxyCompactList}\item 
virtual const \hyperlink{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}{Profile\+List} \& \hyperlink{class_ogre_1_1_terrain_material_generator_af5c268b51d81b23b3e8deaf300b4a9f2}{get\+Profiles} () const
\begin{DoxyCompactList}\small\item\em Get the list of profiles that this generator supports. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_terrain_material_generator_a73368819720d8898e87497463e27f21e}{is\+Vertex\+Compression\+Supported} () const
\begin{DoxyCompactList}\small\item\em Return whether this material generator supports using a compressed vertex format. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_af56363e3dbbffde7872cf88b869565ac}{request\+Options} (\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain)
\begin{DoxyCompactList}\small\item\em Triggers the generator to request the options that it needs. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_aaf1237c1f7b754f2c4d1d172c7690508}{set\+Active\+Profile} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Set the active profile by name. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_a0580472a86a3c9cadfe6c494e5005854}{set\+Active\+Profile} (\hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile} $\ast$p)
\begin{DoxyCompactList}\small\item\em Set the active \hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile}. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_acfbb5218a477deb4065d0eadd8c1f0c3}{set\+Debug\+Level} (unsigned int dbg)
\begin{DoxyCompactList}\small\item\em Set the debug level of the material. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_a914f877ab8bb96f994160eb2b325a8cd}{set\+Lightmap\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Whether to support a light map over the terrain in the shader, if it\textquotesingle{}s present (default true). \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_aaa151085991db558a3e94748356c8156}{update\+Composite\+Map} (const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain, const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&rect)
\begin{DoxyCompactList}\small\item\em Update the composite map for a terrain. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_aed0ac64c47fa577fab20e844b02b0aa5}{update\+Params} (const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&mat, const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain)
\begin{DoxyCompactList}\small\item\em Update parameters for the given terrain using the active profile. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_terrain_material_generator_a15db830ec2609de8e70e90861a30b8a7}{update\+Params\+For\+Composite\+Map} (const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&mat, const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$terrain)
\begin{DoxyCompactList}\small\item\em Update parameters for the given terrain composite map using the active profile. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A \hyperlink{class_ogre_1_1_terrain_material_generator}{Terrain\+Material\+Generator} which can cope with normal mapped, specular mapped terrain. 

\begin{DoxyNote}{Note}
Requires the Cg plugin to render correctly 
\end{DoxyNote}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}\label{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!Profile\+List@{Profile\+List}}
\index{Profile\+List@{Profile\+List}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{Profile\+List}{ProfileList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile}$\ast$$>$ \hyperlink{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}{Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+List}\hspace{0.3cm}{\ttfamily [inherited]}}



List of profiles -\/ NB should be ordered in descending complexity. 



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a_ac41cdd05e80c7eed45f59a16e13ec740}\label{class_ogre_1_1_terrain_material_generator_a_ac41cdd05e80c7eed45f59a16e13ec740}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!Terrain\+Material\+GeneratorA@{Terrain\+Material\+GeneratorA}}
\index{Terrain\+Material\+GeneratorA@{Terrain\+Material\+GeneratorA}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{Terrain\+Material\+Generator\+A()}{TerrainMaterialGeneratorA()}}
{\footnotesize\ttfamily Ogre\+::\+Terrain\+Material\+Generator\+A\+::\+Terrain\+Material\+GeneratorA (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a_af5c5973e8e5c79a9134fad7b5a4f7212}\label{class_ogre_1_1_terrain_material_generator_a_af5c5973e8e5c79a9134fad7b5a4f7212}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!````~Terrain\+Material\+GeneratorA@{$\sim$\+Terrain\+Material\+GeneratorA}}
\index{````~Terrain\+Material\+GeneratorA@{$\sim$\+Terrain\+Material\+GeneratorA}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{$\sim$\+Terrain\+Material\+Generator\+A()}{~TerrainMaterialGeneratorA()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Terrain\+Material\+Generator\+A\+::$\sim$\+Terrain\+Material\+GeneratorA (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_af5c268b51d81b23b3e8deaf300b4a9f2}\label{class_ogre_1_1_terrain_material_generator_af5c268b51d81b23b3e8deaf300b4a9f2}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!get\+Profiles@{get\+Profiles}}
\index{get\+Profiles@{get\+Profiles}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{get\+Profiles()}{getProfiles()}}
{\footnotesize\ttfamily virtual const \hyperlink{class_ogre_1_1_terrain_material_generator_a2751de74a4f553835e168949e2aef522}{Profile\+List}\& Ogre\+::\+Terrain\+Material\+Generator\+::get\+Profiles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Get the list of profiles that this generator supports. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_aaf1237c1f7b754f2c4d1d172c7690508}\label{class_ogre_1_1_terrain_material_generator_aaf1237c1f7b754f2c4d1d172c7690508}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!set\+Active\+Profile@{set\+Active\+Profile}}
\index{set\+Active\+Profile@{set\+Active\+Profile}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{set\+Active\+Profile()}{setActiveProfile()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::set\+Active\+Profile (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Set the active profile by name. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a0580472a86a3c9cadfe6c494e5005854}\label{class_ogre_1_1_terrain_material_generator_a0580472a86a3c9cadfe6c494e5005854}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!set\+Active\+Profile@{set\+Active\+Profile}}
\index{set\+Active\+Profile@{set\+Active\+Profile}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{set\+Active\+Profile()}{setActiveProfile()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::set\+Active\+Profile (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile} $\ast$}]{p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Set the active \hyperlink{class_ogre_1_1_profile}{Profile}. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a22dc4764b52343a6506675983daa2b74}\label{class_ogre_1_1_terrain_material_generator_a22dc4764b52343a6506675983daa2b74}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!get\+Active\+Profile@{get\+Active\+Profile}}
\index{get\+Active\+Profile@{get\+Active\+Profile}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{get\+Active\+Profile()}{getActiveProfile()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_terrain_material_generator_1_1_profile}{Profile}$\ast$ Ogre\+::\+Terrain\+Material\+Generator\+::get\+Active\+Profile (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get the active profile. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_ae6cdf5dafc5bbea8e8241b54689798de}\label{class_ogre_1_1_terrain_material_generator_ae6cdf5dafc5bbea8e8241b54689798de}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!\+\_\+mark\+Changed@{\+\_\+mark\+Changed}}
\index{\+\_\+mark\+Changed@{\+\_\+mark\+Changed}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{\+\_\+mark\+Changed()}{\_markChanged()}}
{\footnotesize\ttfamily void Ogre\+::\+Terrain\+Material\+Generator\+::\+\_\+mark\+Changed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Internal method -\/ indicates that a change has been made that would require material regeneration. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a7c66198986a8b44314be2aedcfbaf4fe}\label{class_ogre_1_1_terrain_material_generator_a7c66198986a8b44314be2aedcfbaf4fe}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!get\+Change\+Count@{get\+Change\+Count}}
\index{get\+Change\+Count@{get\+Change\+Count}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{get\+Change\+Count()}{getChangeCount()}}
{\footnotesize\ttfamily unsigned long long int Ogre\+::\+Terrain\+Material\+Generator\+::get\+Change\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Returns the number of times the generator has undergone a change which would require materials to be regenerated. 

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



Get the layer declaration that this material generator operates with. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a7f9892827501c4907da1775e3c0c067b}\label{class_ogre_1_1_terrain_material_generator_a7f9892827501c4907da1775e3c0c067b}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!can\+Generate\+Using\+Declaration@{can\+Generate\+Using\+Declaration}}
\index{can\+Generate\+Using\+Declaration@{can\+Generate\+Using\+Declaration}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{can\+Generate\+Using\+Declaration()}{canGenerateUsingDeclaration()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Terrain\+Material\+Generator\+::can\+Generate\+Using\+Declaration (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_terrain_layer_declaration}{Terrain\+Layer\+Declaration} \&}]{decl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Whether this generator can generate a material for a given declaration. 

By default this only returns true if the declaration is equal to the standard one returned from get\+Layer\+Declaration, but if a subclass wants to be flexible to generate materials for other declarations too, it can specify here. \mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a73368819720d8898e87497463e27f21e}\label{class_ogre_1_1_terrain_material_generator_a73368819720d8898e87497463e27f21e}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!is\+Vertex\+Compression\+Supported@{is\+Vertex\+Compression\+Supported}}
\index{is\+Vertex\+Compression\+Supported@{is\+Vertex\+Compression\+Supported}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{is\+Vertex\+Compression\+Supported()}{isVertexCompressionSupported()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Terrain\+Material\+Generator\+::is\+Vertex\+Compression\+Supported (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Return whether this material generator supports using a compressed vertex format. 

This is only possible when using shaders. \mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_af56363e3dbbffde7872cf88b869565ac}\label{class_ogre_1_1_terrain_material_generator_af56363e3dbbffde7872cf88b869565ac}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!request\+Options@{request\+Options}}
\index{request\+Options@{request\+Options}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{request\+Options()}{requestOptions()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::request\+Options (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Triggers the generator to request the options that it needs. 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::request\+Options().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_aa9e7fb7cee77cc1bb1d88fa6c3de7f5e}\label{class_ogre_1_1_terrain_material_generator_aa9e7fb7cee77cc1bb1d88fa6c3de7f5e}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!generate@{generate}}
\index{generate@{generate}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{generate()}{generate()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} Ogre\+::\+Terrain\+Material\+Generator\+::generate (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Generate a material for the given terrain using the active profile. 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::generate().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_acaa6cd4b06a385638fed2603480d8445}\label{class_ogre_1_1_terrain_material_generator_acaa6cd4b06a385638fed2603480d8445}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!generate\+For\+Composite\+Map@{generate\+For\+Composite\+Map}}
\index{generate\+For\+Composite\+Map@{generate\+For\+Composite\+Map}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{generate\+For\+Composite\+Map()}{generateForCompositeMap()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} Ogre\+::\+Terrain\+Material\+Generator\+::generate\+For\+Composite\+Map (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Generate a material for the given composite map of the terrain using the active profile. 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::generate\+For\+Composite\+Map().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a914f877ab8bb96f994160eb2b325a8cd}\label{class_ogre_1_1_terrain_material_generator_a914f877ab8bb96f994160eb2b325a8cd}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!set\+Lightmap\+Enabled@{set\+Lightmap\+Enabled}}
\index{set\+Lightmap\+Enabled@{set\+Lightmap\+Enabled}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{set\+Lightmap\+Enabled()}{setLightmapEnabled()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::set\+Lightmap\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Whether to support a light map over the terrain in the shader, if it\textquotesingle{}s present (default true). 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::set\+Lightmap\+Enabled().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a6402e1c3e9770043be75b845abbdc79a}\label{class_ogre_1_1_terrain_material_generator_a6402e1c3e9770043be75b845abbdc79a}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!get\+Max\+Layers@{get\+Max\+Layers}}
\index{get\+Max\+Layers@{get\+Max\+Layers}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{get\+Max\+Layers()}{getMaxLayers()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Terrain\+Material\+Generator\+::get\+Max\+Layers (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Get the maximum number of layers supported with the given terrain. 

\begin{DoxyNote}{Note}
When you change the options on the terrain, this value can change. 
\end{DoxyNote}


References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::get\+Max\+Layers().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_aaa151085991db558a3e94748356c8156}\label{class_ogre_1_1_terrain_material_generator_aaa151085991db558a3e94748356c8156}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!update\+Composite\+Map@{update\+Composite\+Map}}
\index{update\+Composite\+Map@{update\+Composite\+Map}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{update\+Composite\+Map()}{updateCompositeMap()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::update\+Composite\+Map (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Update the composite map for a terrain. 

The composite map for a terrain must match what the terrain should look like at distance. This method will only be called in the render thread so the generator is free to render into a texture to support this, so long as the results are blitted into the \hyperlink{class_ogre_1_1_terrain}{Terrain}\textquotesingle{}s own composite map afterwards. 

References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::update\+Composite\+Map().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_aed0ac64c47fa577fab20e844b02b0aa5}\label{class_ogre_1_1_terrain_material_generator_aed0ac64c47fa577fab20e844b02b0aa5}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!update\+Params@{update\+Params}}
\index{update\+Params@{update\+Params}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{update\+Params()}{updateParams()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::update\+Params (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{mat,  }\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Update parameters for the given terrain using the active profile. 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::update\+Params().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a15db830ec2609de8e70e90861a30b8a7}\label{class_ogre_1_1_terrain_material_generator_a15db830ec2609de8e70e90861a30b8a7}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!update\+Params\+For\+Composite\+Map@{update\+Params\+For\+Composite\+Map}}
\index{update\+Params\+For\+Composite\+Map@{update\+Params\+For\+Composite\+Map}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{update\+Params\+For\+Composite\+Map()}{updateParamsForCompositeMap()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::update\+Params\+For\+Composite\+Map (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{mat,  }\item[{const \hyperlink{class_ogre_1_1_terrain}{Terrain} $\ast$}]{terrain }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Update parameters for the given terrain composite map using the active profile. 



References Ogre\+::\+Terrain\+Material\+Generator\+::\+Profile\+::update\+Params\+For\+Composite\+Map().

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_acfbb5218a477deb4065d0eadd8c1f0c3}\label{class_ogre_1_1_terrain_material_generator_acfbb5218a477deb4065d0eadd8c1f0c3}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!set\+Debug\+Level@{set\+Debug\+Level}}
\index{set\+Debug\+Level@{set\+Debug\+Level}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{set\+Debug\+Level()}{setDebugLevel()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::set\+Debug\+Level (\begin{DoxyParamCaption}\item[{unsigned int}]{dbg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Set the debug level of the material. 

\begin{DoxyRemark}{Remarks}
Sets the level of debug display for this material. What this debug level means is entirely depdendent on the generator, the only constant is that 0 means \textquotesingle{}no debug\textquotesingle{} and non-\/zero means \textquotesingle{}some level of debugging\textquotesingle{}, with any graduations in non-\/zero values being generator-\/specific. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_ac4df6fc0a5310ac806299ebf607afe9d}\label{class_ogre_1_1_terrain_material_generator_ac4df6fc0a5310ac806299ebf607afe9d}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!get\+Debug\+Level@{get\+Debug\+Level}}
\index{get\+Debug\+Level@{get\+Debug\+Level}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{get\+Debug\+Level()}{getDebugLevel()}}
{\footnotesize\ttfamily virtual unsigned int Ogre\+::\+Terrain\+Material\+Generator\+::get\+Debug\+Level (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Get the debug level of the material. 

\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_abbe57c1cdc0ff8acb1ab5e837f0aa573}\label{class_ogre_1_1_terrain_material_generator_abbe57c1cdc0ff8acb1ab5e837f0aa573}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!\+\_\+render\+Composite\+Map@{\+\_\+render\+Composite\+Map}}
\index{\+\_\+render\+Composite\+Map@{\+\_\+render\+Composite\+Map}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{\+\_\+render\+Composite\+Map()}{\_renderCompositeMap()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Terrain\+Material\+Generator\+::\+\_\+render\+Composite\+Map (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{size,  }\item[{const \hyperlink{group___general_gae714035a753a8f484650598dc4143db8}{Rect} \&}]{rect,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{mat,  }\item[{const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \&}]{dest\+Composite\+Map }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Helper method to render a composite map. 


\begin{DoxyParams}{Parameters}
{\em size} & The requested composite map size \\
\hline
{\em rect} & The region of the composite map to update, in image space \\
\hline
{\em mat} & The material to use to render the map \\
\hline
{\em dest\+Composite\+Map} & A Texture\+Ptr for the composite map to be written into \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_terrain_material_generator_a87dca7208407e824a01d5e07ea92688f}\label{class_ogre_1_1_terrain_material_generator_a87dca7208407e824a01d5e07ea92688f}} 
\index{Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}!\+\_\+get\+Composite\+Map\+R\+TT@{\+\_\+get\+Composite\+Map\+R\+TT}}
\index{\+\_\+get\+Composite\+Map\+R\+TT@{\+\_\+get\+Composite\+Map\+R\+TT}!Ogre\+::\+Terrain\+Material\+GeneratorA@{Ogre\+::\+Terrain\+Material\+GeneratorA}}
\subsubsection{\texorpdfstring{\+\_\+get\+Composite\+Map\+R\+T\+T()}{\_getCompositeMapRTT()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_texture}{Texture}$\ast$ Ogre\+::\+Terrain\+Material\+Generator\+::\+\_\+get\+Composite\+Map\+R\+TT (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



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