\hypertarget{a00867}{\section{Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$ Class Template Reference}
\label{a00867}\index{Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$@{Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$}}
}
Inheritance diagram for Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a00867}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00867_a4f75fba898c38734f3b14ad5e859da56}{typedef Point\+T {\bfseries Point}}\label{a00867_a4f75fba898c38734f3b14ad5e859da56}

\item 
\hypertarget{a00867_adc7b74464529850b8b0f64503e244737}{typedef Point\+::value\+\_\+type {\bfseries Scalar}}\label{a00867_adc7b74464529850b8b0f64503e244737}

\item 
\hypertarget{a00867_a48d8367acf81e6af79bbfaed69b60392}{typedef \hyperlink{a00996}{Pose\+T}$<$ Point\+T $>$ \hyperlink{a00867_a48d8367acf81e6af79bbfaed69b60392}{Pose}}\label{a00867_a48d8367acf81e6af79bbfaed69b60392}

\begin{DoxyCompactList}\small\item\em Typedef for the pose template. \end{DoxyCompactList}\item 
\hypertarget{a00867_ac7911d635187e70986dd6c96a3d7ffdf}{typedef \\*
\hyperlink{a00735}{Interpolation\+Matrix\+Manipulator\+T}\\*
$<$ Scalar $>$ {\bfseries Matrix\+Manipulator}}\label{a00867_ac7911d635187e70986dd6c96a3d7ffdf}

\item 
\hypertarget{a00867_a20d28a24fb6e3a7d0d70920fc4e8daa5}{typedef \hyperlink{a00736}{Interpolation\+T}$<$ Scalar $>$ {\bfseries Interpolator}}\label{a00867_a20d28a24fb6e3a7d0d70920fc4e8daa5}

\item 
\hypertarget{a00867_a93dd82815740cb59408fd5742a84a687}{typedef std\+::vector$<$ Scalar $>$ {\bfseries Target\+Type}}\label{a00867_a93dd82815740cb59408fd5742a84a687}

\item 
\hypertarget{a00867_ae74212696d7d109a5976588f0f2640a6}{typedef std\+::vector\\*
$<$ \hyperlink{a00734}{Interpolation\+Animation\+T}\\*
$<$ \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $>$ $\ast$ $>$ {\bfseries Interpolation\+Animations}}\label{a00867_ae74212696d7d109a5976588f0f2640a6}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00867_a269f7ecfb1a8868d08671c443f930654}{Multi\+Interpolation\+Animation\+T} (const \hyperlink{a00867}{Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hypertarget{a00867_a5f268f6e08f8199091d4e9bb02cf7c3e}{{\bfseries Multi\+Interpolation\+Animation\+T} (const Interpolation\+Animations \&\+\_\+interpolation\+Animations)}\label{a00867_a5f268f6e08f8199091d4e9bb02cf7c3e}

\item 
\hypertarget{a00867_aa61f99193305c1ef757690f782811f77}{virtual \hyperlink{a00289}{Animation\+T}$<$ Point\+T $>$ $\ast$ {\bfseries copy} ()}\label{a00867_aa61f99193305c1ef757690f782811f77}

\item 
virtual void \hyperlink{a00867_a55498407db6e50c4890159d9a4f2ecc6}{update\+From\+Global} (unsigned int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Updates the local matrix using the global matrix. \end{DoxyCompactList}\item 
\hypertarget{a00867_a610243fd10ec28cb1ee2b2da936479f5}{virtual bool {\bfseries get\+Min\+Input} (Scalar \&\+\_\+result)}\label{a00867_a610243fd10ec28cb1ee2b2da936479f5}

\item 
\hypertarget{a00867_a858eb4cb67a9d115f1ebd47feb6c0652}{virtual bool {\bfseries get\+Max\+Input} (Scalar \&\+\_\+result)}\label{a00867_a858eb4cb67a9d115f1ebd47feb6c0652}

\item 
\hypertarget{a00867_afd245a7d65a032e757e1155b656be9e5}{virtual void {\bfseries clear\+Pose\+Cache} ()}\label{a00867_afd245a7d65a032e757e1155b656be9e5}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Frame access}\par
{\em There is one pose per frame. }\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{a00996}{Pose} $\ast$ \hyperlink{a00867_a3c8d26b304ca9a0e4600dc130cf5a840}{pose} (unsigned int \+\_\+i\+Frame)
\begin{DoxyCompactList}\small\item\em get a pose \end{DoxyCompactList}\item 
virtual \hyperlink{a00996}{Pose} $\ast$ \hyperlink{a00867_a573ffd7315c11bdb87762b9e1f5f2b72}{pose} (unsigned int \+\_\+i\+Frame, \hyperlink{a00996}{Pose} $\ast$\+\_\+reference)
\begin{DoxyCompactList}\small\item\em get a pose \end{DoxyCompactList}\item 
virtual unsigned int \hyperlink{a00867_a5003d987a14b7e2a0d051cb084c9f6fb}{frame\+Count} ()
\begin{DoxyCompactList}\small\item\em Returns the number of frames that this animation can playback. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Synchronization}\par
{\em Use these methods to keep the poses in sync with the number (and indices) of the joints. }\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00867_ae0c3689ef993652438039b2d332fa23c}{insert\+Joint\+At} (unsigned int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Called by the skeleton as a new joint is inserted. \end{DoxyCompactList}\item 
void \hyperlink{a00867_aab923237c08e2de919c0fb0406dc2ab0}{remove\+Joint\+At} (unsigned int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Called by the skeleton as a joint is deleted. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Animations access}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00867_adf422201e806f1a0a7bbcc53f5b48600}{void {\bfseries add\+Interpolation\+Animation} (\hyperlink{a00734}{Interpolation\+Animation\+T}$<$ Point\+T $>$ $\ast$\+\_\+animation)}\label{a00867_adf422201e806f1a0a7bbcc53f5b48600}

\item 
\hypertarget{a00867_afbbe498be227efa0e4005e951183371b}{unsigned int {\bfseries animation\+Count} ()}\label{a00867_afbbe498be227efa0e4005e951183371b}

\item 
\hypertarget{a00867_a08af7c17fb564ac491c4074c8ba91434}{\hyperlink{a00734}{Interpolation\+Animation\+T}$<$ Point\+T $>$ $\ast$ {\bfseries animation} (unsigned int \+\_\+index)}\label{a00867_a08af7c17fb564ac491c4074c8ba91434}

\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00867_a12204bc783caf26914a74933d214ac11}{Interpolation\+Animations {\bfseries interpolation\+Animations\+\_\+}}\label{a00867_a12204bc783caf26914a74933d214ac11}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00867_a9c68027d454364bb949026efa3c2df9a}{{\footnotesize template$<$typename $>$ }\\class {\bfseries Skeleton\+T}}\label{a00867_a9c68027d454364bb949026efa3c2df9a}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Point\+T$>$class Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$}



Definition at line 56 of file Multi\+Interpolation\+Animation\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00867_a269f7ecfb1a8868d08671c443f930654}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{Multi\+Interpolation\+Animation\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::{\bf Multi\+Interpolation\+Animation\+T} (
\begin{DoxyParamCaption}
\item[{const {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$ \&}]{\+\_\+other}
\end{DoxyParamCaption}
)}}\label{a00867_a269f7ecfb1a8868d08671c443f930654}


Copy constructor. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+other} & The animation to copy from \\
\hline
\end{DoxyParams}


Definition at line 62 of file Multi\+Interpolation\+Animation\+T.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00867_a5003d987a14b7e2a0d051cb084c9f6fb}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!frame\+Count@{frame\+Count}}
\index{frame\+Count@{frame\+Count}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{frame\+Count}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ unsigned int {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::frame\+Count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00867_a5003d987a14b7e2a0d051cb084c9f6fb}


Returns the number of frames that this animation can playback. 

Note that this is not simply the sum of all animations' frame counts, as they can (and most likely will) overlap. 

Reimplemented from \hyperlink{a00734_ac406ac3aaabfbed8d09bbca1ec9b9868}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 122 of file Multi\+Interpolation\+Animation\+T.\+cc.

\hypertarget{a00867_ae0c3689ef993652438039b2d332fa23c}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!insert\+Joint\+At@{insert\+Joint\+At}}
\index{insert\+Joint\+At@{insert\+Joint\+At}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{insert\+Joint\+At}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ void {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::insert\+Joint\+At (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+index}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00867_ae0c3689ef993652438039b2d332fa23c}


Called by the skeleton as a new joint is inserted. 

The call is dispatched to all poses stored in the animation. See Base\+Node\+::insert\+\_\+at for more information.


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & The new joint is inserted at this position. Insert new joints at the end by passing \hyperlink{a01190_a5f84278746abf75857b26ed83575041e}{Skeleton\+T$<$$>$\+::joint\+Count} as parameter. \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{a00734_a9f7d74161f3baccb036852190e0fb09a}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 127 of file Multi\+Interpolation\+Animation\+T.\+hh.

\hypertarget{a00867_a3c8d26b304ca9a0e4600dc130cf5a840}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!pose@{pose}}
\index{pose@{pose}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{pose}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf Pose\+T}$<$ Point\+T $>$ $\ast$ {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::pose (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+i\+Frame}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00867_a3c8d26b304ca9a0e4600dc130cf5a840}


get a pose 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i\+Frame} & Frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Requested pose 
\end{DoxyReturn}


Reimplemented from \hyperlink{a00734_a51465d4c8fc2055924b13be7314cc7df}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 135 of file Multi\+Interpolation\+Animation\+T.\+cc.

\hypertarget{a00867_a573ffd7315c11bdb87762b9e1f5f2b72}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!pose@{pose}}
\index{pose@{pose}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{pose}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf Pose\+T}$<$ Point\+T $>$ $\ast$ {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::pose (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+i\+Frame, }
\item[{{\bf Pose} $\ast$}]{\+\_\+reference}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00867_a573ffd7315c11bdb87762b9e1f5f2b72}


get a pose 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i\+Frame} & Frame \\
\hline
{\em \+\_\+reference} & Reference pose \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Requested pose 
\end{DoxyReturn}


Reimplemented from \hyperlink{a00734_ac3a334563a2327fde18e37585f95860d}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 155 of file Multi\+Interpolation\+Animation\+T.\+cc.

\hypertarget{a00867_aab923237c08e2de919c0fb0406dc2ab0}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!remove\+Joint\+At@{remove\+Joint\+At}}
\index{remove\+Joint\+At@{remove\+Joint\+At}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{remove\+Joint\+At}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ void {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::remove\+Joint\+At (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+index}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00867_aab923237c08e2de919c0fb0406dc2ab0}


Called by the skeleton as a joint is deleted. 

The call is dispatched to all poses stored in this animation. See Base\+Pose\+T$<$$>$\+::remove\+\_\+at for more information.


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & The index of the joint that is being deleted. \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{a00734_a9e2f45c355c921663d246c853f1310bb}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 135 of file Multi\+Interpolation\+Animation\+T.\+hh.

\hypertarget{a00867_a55498407db6e50c4890159d9a4f2ecc6}{\index{Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}!update\+From\+Global@{update\+From\+Global}}
\index{update\+From\+Global@{update\+From\+Global}!Multi\+Interpolation\+Animation\+T@{Multi\+Interpolation\+Animation\+T}}
\subsubsection[{update\+From\+Global}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ virtual void {\bf Multi\+Interpolation\+Animation\+T}$<$ Point\+T $>$\+::update\+From\+Global (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+index}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00867_a55498407db6e50c4890159d9a4f2ecc6}


Updates the local matrix using the global matrix. 

Called when a joints parent is changed. Note\+: Does nothing at the moment


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & The joints index \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{a00734_a79caeac880370dc843f12d946e15b4a9}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 77 of file Multi\+Interpolation\+Animation\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Object\+Types/\+Skeleton/\+Animation/Multi\+Interpolation\+Animation\+T.\+hh\item 
Object\+Types/\+Skeleton/\+Animation/Multi\+Interpolation\+Animation\+T.\+cc\end{DoxyCompactItemize}
