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


Subclasses of this class are responsible for performing a function on an input value for a \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=243pt]{class_ogre_1_1_controller_function__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}{Controller\+Function} (bool delta\+Input)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}{$\sim$\+Controller\+Function} ()
\item 
virtual T \hyperlink{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}{calculate} (T source\+Value)=0
\end{DoxyCompactItemize}


\subsection{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 \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 \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 \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}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}\label{class_ogre_1_1_controller_function_ae7f7207fb3ce7e252fef5941da9ebc24}} 
\index{Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}!Controller\+Function@{Controller\+Function}}
\index{Controller\+Function@{Controller\+Function}!Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}}
\subsubsection{\texorpdfstring{Controller\+Function()}{ControllerFunction()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\hyperlink{class_ogre_1_1_controller_function}{Ogre\+::\+Controller\+Function}$<$ T $>$\+::\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, signifies that the input will be a delta value such that the function should add it to an internal counter before calculating the output. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}\label{class_ogre_1_1_controller_function_a00ae7d50d2009c39e90a623e47a451c3}} 
\index{Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}!````~Controller\+Function@{$\sim$\+Controller\+Function}}
\index{````~Controller\+Function@{$\sim$\+Controller\+Function}!Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}}
\subsubsection{\texorpdfstring{$\sim$\+Controller\+Function()}{~ControllerFunction()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
virtual \hyperlink{class_ogre_1_1_controller_function}{Ogre\+::\+Controller\+Function}$<$ T $>$\+::$\sim$\hyperlink{class_ogre_1_1_controller_function}{Controller\+Function} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}\label{class_ogre_1_1_controller_function_a0f77d037a78ce3b430c0a18fbe711df0}} 
\index{Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}!calculate@{calculate}}
\index{calculate@{calculate}!Ogre\+::\+Controller\+Function@{Ogre\+::\+Controller\+Function}}
\subsubsection{\texorpdfstring{calculate()}{calculate()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
virtual T \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 \hyperlink{class_ogre_1_1_linear_controller_function_a1769b1d5229c04ba7049002d5a4c9b5f}{Ogre\+::\+Linear\+Controller\+Function}, \hyperlink{class_ogre_1_1_waveform_controller_function_aec4afc09add54fd7872f78e299e1d276}{Ogre\+::\+Waveform\+Controller\+Function}, \hyperlink{class_ogre_1_1_scale_controller_function_a7c920fe250fc003fb45e819ed058c824}{Ogre\+::\+Scale\+Controller\+Function}, \hyperlink{class_ogre_1_1_animation_controller_function_a4f3ff1b57eba7e774d10b833273ec137}{Ogre\+::\+Animation\+Controller\+Function}, and \hyperlink{class_ogre_1_1_passthrough_controller_function_a25693ebdf658f1d1a393a3964a32e949}{Ogre\+::\+Passthrough\+Controller\+Function}.



Referenced by Ogre\+::\+Controller\+Function$<$ Real $>$\+::$\sim$\+Controller\+Function().



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