\hypertarget{class_ogre_1_1_controller_function}{}\doxysection{Ogre\+::Controller\+Function$<$ T $>$ Class Template Reference}
\label{class_ogre_1_1_controller_function}\index{Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}}


Subclasses of this class are responsible for performing a function on an input value for a \mbox{\hyperlink{class_ogre_1_1_controller}{Controller}}.  




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



Inheritance diagram for Ogre\+::Controller\+Function$<$ T $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=244pt]{class_ogre_1_1_controller_function__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}{Controller\+Function}} (bool delta\+Input)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}{$\sim$\+Controller\+Function}} ()
\item 
virtual T \mbox{\hyperlink{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}{calculate}} (T source\+Value)=0
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class Ogre\+::\+Controller\+Function$<$ T $>$}

Subclasses of this class are responsible for performing a function on an input value for a \mbox{\hyperlink{class_ogre_1_1_controller}{Controller}}. 

\begin{DoxyRemark}{Remarks}
This abstract class provides the interface that needs to be supported for a custom function which can be \textquotesingle{}plugged in\textquotesingle{} to a \mbox{\hyperlink{class_ogre_1_1_controller}{Controller}} instance, which controls some object value based on an input value. For example, the Wave\+Controller\+Function class provided by \mbox{\hyperlink{namespace_ogre}{Ogre}} allows you to use various waveforms to translate an input value to an output value. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
You are free to create your own subclasses in order to define any function you wish. 
\end{DoxyParagraph}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}\label{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}} 
\index{Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}!ControllerFunction@{ControllerFunction}}
\index{ControllerFunction@{ControllerFunction}!Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ControllerFunction()}{ControllerFunction()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{class_ogre_1_1_controller_function}{Ogre\+::\+Controller\+Function}}$<$ T $>$\+::\mbox{\hyperlink{class_ogre_1_1_controller_function}{Controller\+Function}} (\begin{DoxyParamCaption}\item[{bool}]{delta\+Input }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Constructor. 


\begin{DoxyParams}{Parameters}
{\em delta\+Input} & If true, function will add input values together and wrap at 1.\+0 before evaluating \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}\label{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}} 
\index{Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}!````~ControllerFunction@{$\sim$ControllerFunction}}
\index{````~ControllerFunction@{$\sim$ControllerFunction}!Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{$\sim$ControllerFunction()}{~ControllerFunction()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
virtual \mbox{\hyperlink{class_ogre_1_1_controller_function}{Ogre\+::\+Controller\+Function}}$<$ T $>$\+::$\sim$\mbox{\hyperlink{class_ogre_1_1_controller_function}{Controller\+Function}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}\label{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}} 
\index{Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}!calculate@{calculate}}
\index{calculate@{calculate}!Ogre::ControllerFunction$<$ T $>$@{Ogre::ControllerFunction$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{calculate()}{calculate()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
virtual T \mbox{\hyperlink{class_ogre_1_1_controller_function}{Ogre\+::\+Controller\+Function}}$<$ T $>$\+::calculate (\begin{DoxyParamCaption}\item[{T}]{source\+Value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{class_ogre_1_1_linear_controller_function_a1769b1d5229c04ba7049002d5a4c9b5f}{Ogre\+::\+Linear\+Controller\+Function}}, \mbox{\hyperlink{class_ogre_1_1_waveform_controller_function_aec4afc09add54fd7872f78e299e1d276}{Ogre\+::\+Waveform\+Controller\+Function}}, \mbox{\hyperlink{class_ogre_1_1_scale_controller_function_a7c920fe250fc003fb45e819ed058c824}{Ogre\+::\+Scale\+Controller\+Function}}, \mbox{\hyperlink{class_ogre_1_1_animation_controller_function_a4f3ff1b57eba7e774d10b833273ec137}{Ogre\+::\+Animation\+Controller\+Function}}, and \mbox{\hyperlink{class_ogre_1_1_passthrough_controller_function_a25693ebdf658f1d1a393a3964a32e949}{Ogre\+::\+Passthrough\+Controller\+Function}}.



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