\hypertarget{class_ogre_1_1_lod_listener}{}\section{Ogre\+:\+:Lod\+Listener Class Reference}
\label{class_ogre_1_1_lod_listener}\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}


A interface class defining a listener which can be used to receive notifications of L\+OD events.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{class_ogre_1_1_lod_listener_a437b5f300e0f3c38fa581d87e8643784}{$\sim$\+Lod\+Listener} ()
\item 
virtual void \hyperlink{class_ogre_1_1_lod_listener_aa8bdff391f4865fa7da6f301c350400f}{postqueue\+Entity\+Material\+Lod\+Changed} (const \hyperlink{struct_ogre_1_1_entity_material_lod_changed_event}{Entity\+Material\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called after an entity\textquotesingle{}s material L\+OD has changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_lod_listener_a90c2e6ca102b8b43fa2819fc752caf5a}{postqueue\+Entity\+Mesh\+Lod\+Changed} (const \hyperlink{struct_ogre_1_1_entity_mesh_lod_changed_event}{Entity\+Mesh\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called after an entity\textquotesingle{}s mesh L\+OD has changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_lod_listener_a80c7d710fa6e8119a3294f3f8fd80e46}{postqueue\+Movable\+Object\+Lod\+Changed} (const \hyperlink{struct_ogre_1_1_movable_object_lod_changed_event}{Movable\+Object\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called after a movable object\textquotesingle{}s L\+OD has changed. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_lod_listener_a2690efbb582ca532ad79f4e682730ecd}{prequeue\+Entity\+Material\+Lod\+Changed} (\hyperlink{struct_ogre_1_1_entity_material_lod_changed_event}{Entity\+Material\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called before an entity\textquotesingle{}s material L\+OD has changed. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_lod_listener_a812c2bf8014cda9f2ef8fa115d4be416}{prequeue\+Entity\+Mesh\+Lod\+Changed} (\hyperlink{struct_ogre_1_1_entity_mesh_lod_changed_event}{Entity\+Mesh\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called before an entity\textquotesingle{}s mesh L\+OD has changed. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_lod_listener_afeed906381e75aa6449c95085a207a53}{prequeue\+Movable\+Object\+Lod\+Changed} (const \hyperlink{struct_ogre_1_1_movable_object_lod_changed_event}{Movable\+Object\+Lod\+Changed\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called before a movable object\textquotesingle{}s L\+OD has changed. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A interface class defining a listener which can be used to receive notifications of L\+OD events. 

\begin{DoxyRemark}{Remarks}
A \textquotesingle{}listener\textquotesingle{} is an interface designed to be called back when particular events are called. This class defines the interface relating to L\+OD events. In order to receive notifications of L\+OD events, you should create a subclass of \hyperlink{class_ogre_1_1_lod_listener}{Lod\+Listener} and override the methods for which you would like to customise the resulting processing. You should then call \hyperlink{class_ogre_1_1_scene_manager_a2ac761cb112de51be26c54609de3c83a}{Scene\+Manager\+::add\+Lod\+Listener} passing an instance of this class. There is no limit to the number of L\+OD listeners you can register, allowing you to register multiple listeners for different purposes.
\end{DoxyRemark}
For some uses, it may be advantageous to also subclass \hyperlink{class_ogre_1_1_render_queue_listener}{Render\+Queue\+Listener} as this interface makes available information regarding render queue invocations.

It is important not to modify the scene graph during rendering, so, for each event, there are two methods, a prequeue method and a postqueue method. The prequeue method is invoked during rendering, and as such should not perform any changes, but if the event is relevant, it may return true indicating the postqueue method should also be called. The postqueue method is invoked at an appropriate time after rendering and scene changes may be safely made there. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_a437b5f300e0f3c38fa581d87e8643784}\label{class_ogre_1_1_lod_listener_a437b5f300e0f3c38fa581d87e8643784}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!````~Lod\+Listener@{$\sim$\+Lod\+Listener}}
\index{````~Lod\+Listener@{$\sim$\+Lod\+Listener}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{$\sim$\+Lod\+Listener()}{~LodListener()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Lod\+Listener\+::$\sim$\+Lod\+Listener (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_afeed906381e75aa6449c95085a207a53}\label{class_ogre_1_1_lod_listener_afeed906381e75aa6449c95085a207a53}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!prequeue\+Movable\+Object\+Lod\+Changed@{prequeue\+Movable\+Object\+Lod\+Changed}}
\index{prequeue\+Movable\+Object\+Lod\+Changed@{prequeue\+Movable\+Object\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{prequeue\+Movable\+Object\+Lod\+Changed()}{prequeueMovableObjectLodChanged()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Lod\+Listener\+::prequeue\+Movable\+Object\+Lod\+Changed (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_movable_object_lod_changed_event}{Movable\+Object\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called before a movable object\textquotesingle{}s L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
Do not change the \hyperlink{namespace_ogre}{Ogre} state from this method, instead return true and perform changes in postqueue\+Movable\+Object\+Lod\+Changed. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
True to indicate the event should be queued and postqueue\+Movable\+Object\+Lod\+Changed called after rendering is complete. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_a80c7d710fa6e8119a3294f3f8fd80e46}\label{class_ogre_1_1_lod_listener_a80c7d710fa6e8119a3294f3f8fd80e46}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!postqueue\+Movable\+Object\+Lod\+Changed@{postqueue\+Movable\+Object\+Lod\+Changed}}
\index{postqueue\+Movable\+Object\+Lod\+Changed@{postqueue\+Movable\+Object\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{postqueue\+Movable\+Object\+Lod\+Changed()}{postqueueMovableObjectLodChanged()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Lod\+Listener\+::postqueue\+Movable\+Object\+Lod\+Changed (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_movable_object_lod_changed_event}{Movable\+Object\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called after a movable object\textquotesingle{}s L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
May be called even if not requested from prequeue\+Movable\+Object\+Lod\+Changed as only one event queue is maintained per Scene\+Manger instance. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_a812c2bf8014cda9f2ef8fa115d4be416}\label{class_ogre_1_1_lod_listener_a812c2bf8014cda9f2ef8fa115d4be416}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!prequeue\+Entity\+Mesh\+Lod\+Changed@{prequeue\+Entity\+Mesh\+Lod\+Changed}}
\index{prequeue\+Entity\+Mesh\+Lod\+Changed@{prequeue\+Entity\+Mesh\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{prequeue\+Entity\+Mesh\+Lod\+Changed()}{prequeueEntityMeshLodChanged()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Lod\+Listener\+::prequeue\+Entity\+Mesh\+Lod\+Changed (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_1_1_entity_mesh_lod_changed_event}{Entity\+Mesh\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called before an entity\textquotesingle{}s mesh L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
Do not change the \hyperlink{namespace_ogre}{Ogre} state from this method, instead return true and perform changes in postqueue\+Entity\+Mesh\+Lod\+Changed.
\end{DoxyRemark}
It is possible to change the event notification and even alter the new\+Lod\+Index field (possibly to prevent the L\+OD from changing, or to skip an index). \begin{DoxyReturn}{Returns}
True to indicate the event should be queued and postqueue\+Entity\+Mesh\+Lod\+Changed called after rendering is complete. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_a90c2e6ca102b8b43fa2819fc752caf5a}\label{class_ogre_1_1_lod_listener_a90c2e6ca102b8b43fa2819fc752caf5a}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!postqueue\+Entity\+Mesh\+Lod\+Changed@{postqueue\+Entity\+Mesh\+Lod\+Changed}}
\index{postqueue\+Entity\+Mesh\+Lod\+Changed@{postqueue\+Entity\+Mesh\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{postqueue\+Entity\+Mesh\+Lod\+Changed()}{postqueueEntityMeshLodChanged()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Lod\+Listener\+::postqueue\+Entity\+Mesh\+Lod\+Changed (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_entity_mesh_lod_changed_event}{Entity\+Mesh\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called after an entity\textquotesingle{}s mesh L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
May be called even if not requested from prequeue\+Entity\+Mesh\+Lod\+Changed as only one event queue is maintained per Scene\+Manger instance. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_a2690efbb582ca532ad79f4e682730ecd}\label{class_ogre_1_1_lod_listener_a2690efbb582ca532ad79f4e682730ecd}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!prequeue\+Entity\+Material\+Lod\+Changed@{prequeue\+Entity\+Material\+Lod\+Changed}}
\index{prequeue\+Entity\+Material\+Lod\+Changed@{prequeue\+Entity\+Material\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{prequeue\+Entity\+Material\+Lod\+Changed()}{prequeueEntityMaterialLodChanged()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Lod\+Listener\+::prequeue\+Entity\+Material\+Lod\+Changed (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_1_1_entity_material_lod_changed_event}{Entity\+Material\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called before an entity\textquotesingle{}s material L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
Do not change the \hyperlink{namespace_ogre}{Ogre} state from this method, instead return true and perform changes in postqueue\+Material\+Lod\+Changed.
\end{DoxyRemark}
It is possible to change the event notification and even alter the new\+Lod\+Index field (possibly to prevent the L\+OD from changing, or to skip an index). \begin{DoxyReturn}{Returns}
True to indicate the event should be queued and postqueue\+Material\+Lod\+Changed called after rendering is complete. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_lod_listener_aa8bdff391f4865fa7da6f301c350400f}\label{class_ogre_1_1_lod_listener_aa8bdff391f4865fa7da6f301c350400f}} 
\index{Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}!postqueue\+Entity\+Material\+Lod\+Changed@{postqueue\+Entity\+Material\+Lod\+Changed}}
\index{postqueue\+Entity\+Material\+Lod\+Changed@{postqueue\+Entity\+Material\+Lod\+Changed}!Ogre\+::\+Lod\+Listener@{Ogre\+::\+Lod\+Listener}}
\subsubsection{\texorpdfstring{postqueue\+Entity\+Material\+Lod\+Changed()}{postqueueEntityMaterialLodChanged()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Lod\+Listener\+::postqueue\+Entity\+Material\+Lod\+Changed (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_entity_material_lod_changed_event}{Entity\+Material\+Lod\+Changed\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called after an entity\textquotesingle{}s material L\+OD has changed. 

\begin{DoxyRemark}{Remarks}
May be called even if not requested from prequeue\+Entity\+Material\+Lod\+Changed as only one event queue is maintained per Scene\+Manger instance. 
\end{DoxyRemark}


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