\hypertarget{a01942}{}\doxysection{AAX\+\_\+\+CState\+Taper\+Delegate\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\label{a01942}\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}


{\ttfamily \#include $<$AAX\+\_\+\+CState\+Taper\+Delegate.\+h$>$}



Inheritance diagram for AAX\+\_\+\+CState\+Taper\+Delegate\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:
% FIG 0


Collaboration diagram for AAX\+\_\+\+CState\+Taper\+Delegate\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:
% FIG 1


\doxysubsection{Description}
\subsubsection*{template$<$typename T$>$\newline
class AAX\+\_\+\+CState\+Taper\+Delegate$<$ T $>$}
A linear taper conforming to \mbox{\hyperlink{a02338}{AAX\+\_\+\+ITaper\+Delegate}}. 

This taper spaces a parameter\textquotesingle{}s real values evenly between its minimum and maximum, with a linear mapping between the parameter\textquotesingle{}s real and normalized values. It is essentially a version of \mbox{\hyperlink{a01862}{AAX\+\_\+\+CLinear\+Taper\+Delegate}} without that class\textquotesingle{} additional Real\+Precision templatization. \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a01942_a99bdadedcd4de8f8f7a88536a6c262d2}{AAX\+\_\+\+CState\+Taper\+Delegate}} (T min\+Value=0, T max\+Value=1)
\begin{DoxyCompactList}\small\item\em Constructs a State Taper with specified minimum and maximum values. \end{DoxyCompactList}\item 
\mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$ $\ast$ \mbox{\hyperlink{a01942_a4a7f0c8d7a59a348d128a0bf750fea29}{Clone}} () const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Constructs and returns a copy of the taper delegate. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{a01942_a4638babda379cc5bbf215f63c3f0bb08}{Get\+Minimum\+Value}} () const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Returns the taper\textquotesingle{}s minimum real value. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{a01942_aeb4ff10c4750236caa03be5f04c9eaba}{Get\+Maximum\+Value}} () const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Returns the taper\textquotesingle{}s maximum real value. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{a01942_a6caec4112e24a711c9b7fdefa6384462}{Constrain\+Real\+Value}} (T value) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Applies a contraint to the value and returns the constrained value. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{a01942_a2a067bafa1822b1cf19816c64ce5e2d3}{Normalized\+To\+Real}} (double normalized\+Value) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Converts a normalized value to a real value. \end{DoxyCompactList}\item 
double \mbox{\hyperlink{a01942_af693a54c4a61ebc507fcc1a212585824}{Real\+To\+Normalized}} (T real\+Value) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Normalizes a real parameter value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02338}{AAX\+\_\+\+ITaper\+Delegate}} $\ast$ \mbox{\hyperlink{a02338_a710ff3aae07de10dfebe7c027e4b33e2}{Clone}} () const =0
\begin{DoxyCompactList}\small\item\em Constructs and returns a copy of the taper delegate. \end{DoxyCompactList}\item 
virtual T \mbox{\hyperlink{a02338_a9b14f7d73d614b6c012ed03fadb9f0eb}{Get\+Maximum\+Value}} () const =0
\begin{DoxyCompactList}\small\item\em Returns the taper\textquotesingle{}s maximum real value. \end{DoxyCompactList}\item 
virtual T \mbox{\hyperlink{a02338_ac51bda25adc6f4ce320c0dd41fa332c7}{Get\+Minimum\+Value}} () const =0
\begin{DoxyCompactList}\small\item\em Returns the taper\textquotesingle{}s minimum real value. \end{DoxyCompactList}\item 
virtual T \mbox{\hyperlink{a02338_a1de7acdc2b3e114b6686bf845c2465f1}{Constrain\+Real\+Value}} (T value) const =0
\begin{DoxyCompactList}\small\item\em Applies a contraint to the value and returns the constrained value. \end{DoxyCompactList}\item 
virtual T \mbox{\hyperlink{a02338_a0aea0765b42855205bfab84673a2de33}{Normalized\+To\+Real}} (double normalized\+Value) const =0
\begin{DoxyCompactList}\small\item\em Converts a normalized value to a real value. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{a02338_ab017fe7e1c1dcf6191f8b4e8b09f8add}{Real\+To\+Normalized}} (T real\+Value) const =0
\begin{DoxyCompactList}\small\item\em Normalizes a real parameter value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a02334}{AAX\+\_\+\+ITaper\+Delegate\+Base}}}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02334_a38bf3326334b9bc248c62faff2492d38}{$\sim$\+AAX\+\_\+\+ITaper\+Delegate\+Base}} ()
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a01942_a99bdadedcd4de8f8f7a88536a6c262d2}\label{a01942_a99bdadedcd4de8f8f7a88536a6c262d2}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!AAX\_CStateTaperDelegate@{AAX\_CStateTaperDelegate}}
\index{AAX\_CStateTaperDelegate@{AAX\_CStateTaperDelegate}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{AAX\_CStateTaperDelegate()}{AAX\_CStateTaperDelegate()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\mbox{\hyperlink{a01942}{\+::\+AAX\+\_\+\+CState\+Taper\+Delegate}} (\begin{DoxyParamCaption}\item[{T}]{min\+Value = {\ttfamily 0},  }\item[{T}]{max\+Value = {\ttfamily 1} }\end{DoxyParamCaption})}



Constructs a State Taper with specified minimum and maximum values. 

\begin{DoxyNote}{Note}
The parameter\textquotesingle{}s default value should lie within the min to max range.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em min\+Value} & \\
\hline
\mbox{\texttt{ in}}  & {\em max\+Value} & \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a01942_a4a7f0c8d7a59a348d128a0bf750fea29}\label{a01942_a4a7f0c8d7a59a348d128a0bf750fea29}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!Clone@{Clone}}
\index{Clone@{Clone}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{Clone()}{Clone()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$ $\ast$ \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Clone (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Constructs and returns a copy of the taper delegate. 

In general, this method\textquotesingle{}s implementation can use a simple copy constructor\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>}
\DoxyCodeLine{AAX\_CSubclassTaperDelegate<T>*\ \ AAX\_CSubclassTaperDelegate<T>::Clone()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\textcolor{keyword}{}\{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{new}\ AAX\_CSubclassTaperDelegate(*\textcolor{keyword}{this});}
\DoxyCodeLine{\}}

\end{DoxyCode}
 

Implements \mbox{\hyperlink{a02338_a710ff3aae07de10dfebe7c027e4b33e2}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a01942_a4638babda379cc5bbf215f63c3f0bb08}\label{a01942_a4638babda379cc5bbf215f63c3f0bb08}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!GetMinimumValue@{GetMinimumValue}}
\index{GetMinimumValue@{GetMinimumValue}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetMinimumValue()}{GetMinimumValue()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Get\+Minimum\+Value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Returns the taper\textquotesingle{}s minimum real value. 



Implements \mbox{\hyperlink{a02338_ac51bda25adc6f4ce320c0dd41fa332c7}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a01942_aeb4ff10c4750236caa03be5f04c9eaba}\label{a01942_aeb4ff10c4750236caa03be5f04c9eaba}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!GetMaximumValue@{GetMaximumValue}}
\index{GetMaximumValue@{GetMaximumValue}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetMaximumValue()}{GetMaximumValue()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Get\+Maximum\+Value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Returns the taper\textquotesingle{}s maximum real value. 



Implements \mbox{\hyperlink{a02338_a9b14f7d73d614b6c012ed03fadb9f0eb}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a01942_a6caec4112e24a711c9b7fdefa6384462}\label{a01942_a6caec4112e24a711c9b7fdefa6384462}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!ConstrainRealValue@{ConstrainRealValue}}
\index{ConstrainRealValue@{ConstrainRealValue}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ConstrainRealValue()}{ConstrainRealValue()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Constrain\+Real\+Value (\begin{DoxyParamCaption}\item[{T}]{value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Applies a contraint to the value and returns the constrained value. 

This method is useful if the taper requires a contraint beyond simple minimum and maximum real value limits.

\begin{DoxyNote}{Note}
This is the function that should actually enforces the constraints in Normalize\+To\+Real() and \mbox{\hyperlink{a01942_af693a54c4a61ebc507fcc1a212585824}{Real\+To\+Normalized()}}.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & The unconstrained value \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{a02338_a1de7acdc2b3e114b6686bf845c2465f1}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a01942_a2a067bafa1822b1cf19816c64ce5e2d3}\label{a01942_a2a067bafa1822b1cf19816c64ce5e2d3}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!NormalizedToReal@{NormalizedToReal}}
\index{NormalizedToReal@{NormalizedToReal}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{NormalizedToReal()}{NormalizedToReal()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Normalized\+To\+Real (\begin{DoxyParamCaption}\item[{double}]{normalized\+Value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Converts a normalized value to a real value. 

This is where the actual taper algorithm is implemented.

This function should perform the exact inverse of \mbox{\hyperlink{a01942_af693a54c4a61ebc507fcc1a212585824}{Real\+To\+Normalized()}}, to within the roundoff precision of the individual taper implementation.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em normalized\+Value} & The normalized value that will be converted \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{a02338_a0aea0765b42855205bfab84673a2de33}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a01942_af693a54c4a61ebc507fcc1a212585824}\label{a01942_af693a54c4a61ebc507fcc1a212585824}} 
\index{AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}!RealToNormalized@{RealToNormalized}}
\index{RealToNormalized@{RealToNormalized}!AAX\_CStateTaperDelegate$<$ T $>$@{AAX\_CStateTaperDelegate$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{RealToNormalized()}{RealToNormalized()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
double \mbox{\hyperlink{a01942}{AAX\+\_\+\+CState\+Taper\+Delegate}}$<$ T $>$\+::\+Real\+To\+Normalized (\begin{DoxyParamCaption}\item[{T}]{real\+Value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Normalizes a real parameter value. 

This is where the actual taper algorithm is implemented.

This function should perform the exact inverse of \mbox{\hyperlink{a01942_a2a067bafa1822b1cf19816c64ce5e2d3}{Normalized\+To\+Real()}}, to within the roundoff precision of the individual taper implementation.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em real\+Value} & The real parameter value that will be normalized \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{a02338_ab017fe7e1c1dcf6191f8b4e8b09f8add}{AAX\+\_\+\+ITaper\+Delegate$<$ T $>$}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00698}{AAX\+\_\+\+CState\+Taper\+Delegate.\+h}}\end{DoxyCompactItemize}
