\hypertarget{classMultiInterpolationAnimationT}{}\section{Multi\+Interpolation\+AnimationT$<$ PointT $>$ Class Template Reference}
\label{classMultiInterpolationAnimationT}\index{Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$@{Multi\+Interpolation\+Animation\+T$<$ Point\+T $>$}}
Inheritance diagram for Multi\+Interpolation\+AnimationT$<$ PointT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classMultiInterpolationAnimationT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a4f75fba898c38734f3b14ad5e859da56}\label{classMultiInterpolationAnimationT_a4f75fba898c38734f3b14ad5e859da56}} 
typedef PointT {\bfseries Point}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_adc7b74464529850b8b0f64503e244737}\label{classMultiInterpolationAnimationT_adc7b74464529850b8b0f64503e244737}} 
typedef Point\+::value\+\_\+type {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a48d8367acf81e6af79bbfaed69b60392}\label{classMultiInterpolationAnimationT_a48d8367acf81e6af79bbfaed69b60392}} 
typedef \hyperlink{classPoseT}{PoseT}$<$ PointT $>$ \hyperlink{classMultiInterpolationAnimationT_a48d8367acf81e6af79bbfaed69b60392}{Pose}
\begin{DoxyCompactList}\small\item\em Typedef for the pose template. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_ac7911d635187e70986dd6c96a3d7ffdf}\label{classMultiInterpolationAnimationT_ac7911d635187e70986dd6c96a3d7ffdf}} 
typedef \hyperlink{classInterpolationMatrixManipulatorT}{Interpolation\+Matrix\+ManipulatorT}$<$ Scalar $>$ {\bfseries Matrix\+Manipulator}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a20d28a24fb6e3a7d0d70920fc4e8daa5}\label{classMultiInterpolationAnimationT_a20d28a24fb6e3a7d0d70920fc4e8daa5}} 
typedef \hyperlink{classInterpolationT}{InterpolationT}$<$ Scalar $>$ {\bfseries Interpolator}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a93dd82815740cb59408fd5742a84a687}\label{classMultiInterpolationAnimationT_a93dd82815740cb59408fd5742a84a687}} 
typedef std\+::vector$<$ Scalar $>$ {\bfseries Target\+Type}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_ae74212696d7d109a5976588f0f2640a6}\label{classMultiInterpolationAnimationT_ae74212696d7d109a5976588f0f2640a6}} 
typedef std\+::vector$<$ \hyperlink{classInterpolationAnimationT}{Interpolation\+AnimationT}$<$ \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $>$ $\ast$$>$ {\bfseries Interpolation\+Animations}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMultiInterpolationAnimationT_a269f7ecfb1a8868d08671c443f930654}{Multi\+Interpolation\+AnimationT} (const \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a5f268f6e08f8199091d4e9bb02cf7c3e}\label{classMultiInterpolationAnimationT_a5f268f6e08f8199091d4e9bb02cf7c3e}} 
{\bfseries Multi\+Interpolation\+AnimationT} (const Interpolation\+Animations \&\+\_\+interpolation\+Animations)
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_aa61f99193305c1ef757690f782811f77}\label{classMultiInterpolationAnimationT_aa61f99193305c1ef757690f782811f77}} 
virtual \hyperlink{classAnimationT}{AnimationT}$<$ PointT $>$ $\ast$ {\bfseries copy} ()
\item 
virtual void \hyperlink{classMultiInterpolationAnimationT_a55498407db6e50c4890159d9a4f2ecc6}{update\+From\+Global} (unsigned int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Updates the local matrix using the global matrix. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a610243fd10ec28cb1ee2b2da936479f5}\label{classMultiInterpolationAnimationT_a610243fd10ec28cb1ee2b2da936479f5}} 
virtual bool {\bfseries get\+Min\+Input} (Scalar \&\+\_\+result)
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a858eb4cb67a9d115f1ebd47feb6c0652}\label{classMultiInterpolationAnimationT_a858eb4cb67a9d115f1ebd47feb6c0652}} 
virtual bool {\bfseries get\+Max\+Input} (Scalar \&\+\_\+result)
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_afd245a7d65a032e757e1155b656be9e5}\label{classMultiInterpolationAnimationT_afd245a7d65a032e757e1155b656be9e5}} 
virtual void {\bfseries clear\+Pose\+Cache} ()
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Frame access}\par
{\em There is one pose per frame. }\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classMultiInterpolationAnimationT_a3c8d26b304ca9a0e4600dc130cf5a840}{pose} (unsigned int \+\_\+i\+Frame)
\begin{DoxyCompactList}\small\item\em get a pose \end{DoxyCompactList}\item 
virtual \hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classMultiInterpolationAnimationT_a573ffd7315c11bdb87762b9e1f5f2b72}{pose} (unsigned int \+\_\+i\+Frame, \hyperlink{classPoseT}{Pose} $\ast$\+\_\+reference)
\begin{DoxyCompactList}\small\item\em get a pose \end{DoxyCompactList}\item 
virtual unsigned int \hyperlink{classMultiInterpolationAnimationT_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}\textbf{ 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{classMultiInterpolationAnimationT_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{classMultiInterpolationAnimationT_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}\textbf{ Animations access}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_adf422201e806f1a0a7bbcc53f5b48600}\label{classMultiInterpolationAnimationT_adf422201e806f1a0a7bbcc53f5b48600}} 
void {\bfseries add\+Interpolation\+Animation} (\hyperlink{classInterpolationAnimationT}{Interpolation\+AnimationT}$<$ PointT $>$ $\ast$\+\_\+animation)
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_afbbe498be227efa0e4005e951183371b}\label{classMultiInterpolationAnimationT_afbbe498be227efa0e4005e951183371b}} 
unsigned int {\bfseries animation\+Count} ()
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a08af7c17fb564ac491c4074c8ba91434}\label{classMultiInterpolationAnimationT_a08af7c17fb564ac491c4074c8ba91434}} 
\hyperlink{classInterpolationAnimationT}{Interpolation\+AnimationT}$<$ PointT $>$ $\ast$ {\bfseries animation} (unsigned int \+\_\+index)
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a12204bc783caf26914a74933d214ac11}\label{classMultiInterpolationAnimationT_a12204bc783caf26914a74933d214ac11}} 
Interpolation\+Animations {\bfseries interpolation\+Animations\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a9c68027d454364bb949026efa3c2df9a}\label{classMultiInterpolationAnimationT_a9c68027d454364bb949026efa3c2df9a}} 
{\footnotesize template$<$typename $>$ }\\class {\bfseries SkeletonT}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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



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



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a269f7ecfb1a8868d08671c443f930654}\label{classMultiInterpolationAnimationT_a269f7ecfb1a8868d08671c443f930654}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{Multi\+Interpolation\+Animation\+T()}{MultiInterpolationAnimationT()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::\hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT} (\begin{DoxyParamCaption}\item[{const \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$ \&}]{\+\_\+other }\end{DoxyParamCaption})}



Copy constructor. 


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


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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classMultiInterpolationAnimationT_a5003d987a14b7e2a0d051cb084c9f6fb}\label{classMultiInterpolationAnimationT_a5003d987a14b7e2a0d051cb084c9f6fb}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!frame\+Count@{frame\+Count}}
\index{frame\+Count@{frame\+Count}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{frame\+Count()}{frameCount()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
unsigned int \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::frame\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Returns the number of frames that this animation can playback. 

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

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



Definition at line 116 of file Multi\+Interpolation\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMultiInterpolationAnimationT_ae0c3689ef993652438039b2d332fa23c}\label{classMultiInterpolationAnimationT_ae0c3689ef993652438039b2d332fa23c}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!insert\+Joint\+At@{insert\+Joint\+At}}
\index{insert\+Joint\+At@{insert\+Joint\+At}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{insert\+Joint\+At()}{insertJointAt()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
void \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::insert\+Joint\+At (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



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{classSkeletonT_a115ce9e0148b31f8e66eea56cada1208}{Skeleton\+T$<$$>$\+::joint\+Count} as parameter. \\
\hline
\end{DoxyParams}


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



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

\mbox{\Hypertarget{classMultiInterpolationAnimationT_a3c8d26b304ca9a0e4600dc130cf5a840}\label{classMultiInterpolationAnimationT_a3c8d26b304ca9a0e4600dc130cf5a840}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!pose@{pose}}
\index{pose@{pose}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{pose()}{pose()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classPoseT}{PoseT}$<$ PointT $>$ $\ast$ \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::pose (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+i\+Frame }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



get a pose 


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


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



Definition at line 129 of file Multi\+Interpolation\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMultiInterpolationAnimationT_a573ffd7315c11bdb87762b9e1f5f2b72}\label{classMultiInterpolationAnimationT_a573ffd7315c11bdb87762b9e1f5f2b72}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!pose@{pose}}
\index{pose@{pose}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{pose()}{pose()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classPoseT}{PoseT}$<$ PointT $>$ $\ast$ \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::pose (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+i\+Frame,  }\item[{\hyperlink{classPoseT}{Pose} $\ast$}]{\+\_\+reference }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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{classInterpolationAnimationT_ac3a334563a2327fde18e37585f95860d}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



Definition at line 149 of file Multi\+Interpolation\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMultiInterpolationAnimationT_aab923237c08e2de919c0fb0406dc2ab0}\label{classMultiInterpolationAnimationT_aab923237c08e2de919c0fb0406dc2ab0}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!remove\+Joint\+At@{remove\+Joint\+At}}
\index{remove\+Joint\+At@{remove\+Joint\+At}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{remove\+Joint\+At()}{removeJointAt()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
void \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::remove\+Joint\+At (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



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{classInterpolationAnimationT_a9e2f45c355c921663d246c853f1310bb}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



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

\mbox{\Hypertarget{classMultiInterpolationAnimationT_a55498407db6e50c4890159d9a4f2ecc6}\label{classMultiInterpolationAnimationT_a55498407db6e50c4890159d9a4f2ecc6}} 
\index{Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}!update\+From\+Global@{update\+From\+Global}}
\index{update\+From\+Global@{update\+From\+Global}!Multi\+Interpolation\+AnimationT@{Multi\+Interpolation\+AnimationT}}
\subsubsection{\texorpdfstring{update\+From\+Global()}{updateFromGlobal()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
virtual void \hyperlink{classMultiInterpolationAnimationT}{Multi\+Interpolation\+AnimationT}$<$ PointT $>$\+::update\+From\+Global (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



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{classInterpolationAnimationT_a79caeac880370dc843f12d946e15b4a9}{Interpolation\+Animation\+T$<$ Point\+T $>$}.



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



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