\hypertarget{class_ogre_1_1_movable_object_1_1_listener}{}\doxysection{Ogre\+::Movable\+Object\+::Listener Class Reference}
\label{class_ogre_1_1_movable_object_1_1_listener}\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}


\mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener}{Listener}} which gets called back on \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} events.  




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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a358139c1e09d4c36c050861bd4f5b37e}{Listener}} (void)
\item 
virtual \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a7731592ff0013b724f0be7a319a73fa8}{$\sim$\+Listener}} ()
\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a67127c7e6254c75a3e3f064e614a8152}{object\+Attached}} (\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been attached to a node. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a0cc50a90dbeb3d1049e923ee5866a636}{object\+Destroyed}} (\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} is being destroyed. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_aa2a6f73325a1609a522a9d6dce5168cf}{object\+Detached}} (\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been detached from a node. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a7383d0ff8a3e3777378e1a9f9661146f}{object\+Moved}} (\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been moved. \end{DoxyCompactList}\item 
virtual const \mbox{\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_ad53d3feb40d1d1fb81db1cb620df6d8e}{object\+Query\+Lights}} (const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$)
\begin{DoxyCompactList}\small\item\em Called when the movable object needs to query a light list. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener_a3935f0e525d63b03923aa67b137c0695}{object\+Rendering}} (const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$, const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$)
\begin{DoxyCompactList}\small\item\em Called when the movable object of the camera to be used for rendering. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{class_ogre_1_1_movable_object_1_1_listener}{Listener}} which gets called back on \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} events. 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a358139c1e09d4c36c050861bd4f5b37e}\label{class_ogre_1_1_movable_object_1_1_listener_a358139c1e09d4c36c050861bd4f5b37e}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!Listener@{Listener}}
\index{Listener@{Listener}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{Listener()}{Listener()}}
{\footnotesize\ttfamily Ogre\+::\+Movable\+Object\+::\+Listener\+::\+Listener (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a7731592ff0013b724f0be7a319a73fa8}\label{class_ogre_1_1_movable_object_1_1_listener_a7731592ff0013b724f0be7a319a73fa8}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!````~Listener@{$\sim$Listener}}
\index{````~Listener@{$\sim$Listener}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{$\sim$Listener()}{~Listener()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Movable\+Object\+::\+Listener\+::$\sim$\+Listener (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a0cc50a90dbeb3d1049e923ee5866a636}\label{class_ogre_1_1_movable_object_1_1_listener_a0cc50a90dbeb3d1049e923ee5866a636}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectDestroyed@{objectDestroyed}}
\index{objectDestroyed@{objectDestroyed}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectDestroyed()}{objectDestroyed()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Destroyed (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} is being destroyed. 

\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a67127c7e6254c75a3e3f064e614a8152}\label{class_ogre_1_1_movable_object_1_1_listener_a67127c7e6254c75a3e3f064e614a8152}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectAttached@{objectAttached}}
\index{objectAttached@{objectAttached}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectAttached()}{objectAttached()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Attached (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been attached to a node. 

\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_aa2a6f73325a1609a522a9d6dce5168cf}\label{class_ogre_1_1_movable_object_1_1_listener_aa2a6f73325a1609a522a9d6dce5168cf}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectDetached@{objectDetached}}
\index{objectDetached@{objectDetached}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectDetached()}{objectDetached()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Detached (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been detached from a node. 

\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a7383d0ff8a3e3777378e1a9f9661146f}\label{class_ogre_1_1_movable_object_1_1_listener_a7383d0ff8a3e3777378e1a9f9661146f}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectMoved@{objectMoved}}
\index{objectMoved@{objectMoved}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectMoved()}{objectMoved()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Moved (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} has been moved. 

\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_a3935f0e525d63b03923aa67b137c0695}\label{class_ogre_1_1_movable_object_1_1_listener_a3935f0e525d63b03923aa67b137c0695}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectRendering@{objectRendering}}
\index{objectRendering@{objectRendering}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectRendering()}{objectRendering()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Rendering (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called when the movable object of the camera to be used for rendering. 

\begin{DoxyReturn}{Returns}
true if allows queue for rendering, false otherwise. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_movable_object_1_1_listener_ad53d3feb40d1d1fb81db1cb620df6d8e}\label{class_ogre_1_1_movable_object_1_1_listener_ad53d3feb40d1d1fb81db1cb620df6d8e}} 
\index{Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}!objectQueryLights@{objectQueryLights}}
\index{objectQueryLights@{objectQueryLights}!Ogre::MovableObject::Listener@{Ogre::MovableObject::Listener}}
\doxysubsubsection{\texorpdfstring{objectQueryLights()}{objectQueryLights()}}
{\footnotesize\ttfamily virtual const \mbox{\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List}}$\ast$ Ogre\+::\+Movable\+Object\+::\+Listener\+::object\+Query\+Lights (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called when the movable object needs to query a light list. 

\begin{DoxyRemark}{Remarks}
If you want to customize light finding for this object, you should override this method and hook into \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} via \mbox{\hyperlink{class_ogre_1_1_movable_object_ab55eab7ca8e96a3bbb3f69a4095bf067}{Movable\+Object\+::set\+Listener}}. Be aware that the default method caches results within a frame to prevent unnecessary recalculation, so if you override this you should provide your own caching to maintain performance. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
If you use texture shadows, there is an additional restriction -\/ since the lights which should have shadow textures rendered for them are determined based on the entire frustum, and not per-\/object, it is important that the lights returned at the start of this list (up to the number of shadow textures available) are the same lights that were used to generate the shadow textures, and they are in the same order (particularly for additive effects). 

This method will not be called for additive stencil shadows since the light list cannot be varied per object with this technique. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
A pointer to a light list if you populated the light list yourself, or N\+U\+LL to fall back on the default finding process. 
\end{DoxyReturn}


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