\hypertarget{classFrameAnimationT}{}\section{Frame\+AnimationT$<$ PointT $>$ Class Template Reference}
\label{classFrameAnimationT}\index{Frame\+Animation\+T$<$ Point\+T $>$@{Frame\+Animation\+T$<$ Point\+T $>$}}
Inheritance diagram for Frame\+AnimationT$<$ PointT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classFrameAnimationT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classFrameAnimationT_a2a8a750402caf2ef3147f039d1fd1c18}\label{classFrameAnimationT_a2a8a750402caf2ef3147f039d1fd1c18}} 
typedef PointT {\bfseries Point}
\item 
\mbox{\Hypertarget{classFrameAnimationT_add2c8188b114d8521ad91f429a32c7f8}\label{classFrameAnimationT_add2c8188b114d8521ad91f429a32c7f8}} 
typedef Point\+::value\+\_\+type {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classFrameAnimationT_a6d58517e7955dc29ec8aa890e1893f40}\label{classFrameAnimationT_a6d58517e7955dc29ec8aa890e1893f40}} 
typedef \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ {\bfseries Skeleton}
\item 
\mbox{\Hypertarget{classFrameAnimationT_ad8f890d89762127f082054d98881450d}\label{classFrameAnimationT_ad8f890d89762127f082054d98881450d}} 
typedef \hyperlink{classPoseT}{PoseT}$<$ PointT $>$ {\bfseries Pose}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classFrameAnimationT_ab41f364a780b34b8662318a543ff8b73}{Frame\+AnimationT} (const \hyperlink{classPoseT}{PoseT}$<$ PointT $>$ \&\+\_\+pose)
\begin{DoxyCompactList}\small\item\em Constructor -\/ Creates a new animation consisting of a single pose. \end{DoxyCompactList}\item 
\hyperlink{classFrameAnimationT_a77e30adf1720f18c886deb2d96c45430}{Frame\+AnimationT} (\hyperlink{classSkeletonT}{Skeleton} $\ast$\+\_\+skeleton)
\begin{DoxyCompactList}\small\item\em Constructor -\/ Creates a new empty animation. \end{DoxyCompactList}\item 
\hyperlink{classFrameAnimationT_aaf6bdae2484dcd6362b2bea029fdbe12}{Frame\+AnimationT} (\hyperlink{classSkeletonT}{Skeleton} $\ast$\+\_\+skeleton, unsigned int \+\_\+i\+Num\+Frames)
\begin{DoxyCompactList}\small\item\em Constructor -\/ Creates a new animation with the given number of frames. \end{DoxyCompactList}\item 
\hyperlink{classFrameAnimationT_aaa8bf428531ae3b9a8bb6e8a8ff9e9f8}{Frame\+AnimationT} (const \hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classFrameAnimationT_a1ae46d695733a53cc484d5b1766e8800}\label{classFrameAnimationT_a1ae46d695733a53cc484d5b1766e8800}} 
virtual \hyperlink{classFrameAnimationT_a1ae46d695733a53cc484d5b1766e8800}{$\sim$\+Frame\+AnimationT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classFrameAnimationT_aded27e864d22463e0c9d77b7795118ce}\label{classFrameAnimationT_aded27e864d22463e0c9d77b7795118ce}} 
virtual \hyperlink{classAnimationT}{AnimationT}$<$ PointT $>$ $\ast$ \hyperlink{classFrameAnimationT_aded27e864d22463e0c9d77b7795118ce}{copy} ()
\begin{DoxyCompactList}\small\item\em Copy Function. \end{DoxyCompactList}\item 
virtual void \hyperlink{classFrameAnimationT_a58f3b00d1cd2078641eb2d1555328dee}{update\+From\+Global} (unsigned int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Updates the local matrix using the global matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Frame access}\par
{\em There is one pose per frame. }\begin{DoxyCompactItemize}
\item 
\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classFrameAnimationT_ae981361c6d29c0e0b6d3e0f4877c9561}{pose} (unsigned int \+\_\+i\+Frame)
\begin{DoxyCompactList}\small\item\em Returns a pointer to the pose stored in the given frame. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classFrameAnimationT_a903b6a2a816426cd2ee61f8313344768}\label{classFrameAnimationT_a903b6a2a816426cd2ee61f8313344768}} 
unsigned int \hyperlink{classFrameAnimationT_a903b6a2a816426cd2ee61f8313344768}{frame\+Count} ()
\begin{DoxyCompactList}\small\item\em Returns the number of frames stored in this pose. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classFrameAnimationT_a67a760a8804b9fd3fe801cc569689de9}\label{classFrameAnimationT_a67a760a8804b9fd3fe801cc569689de9}} 
void \hyperlink{classFrameAnimationT_a67a760a8804b9fd3fe801cc569689de9}{set\+Frame\+Count} (unsigned int \+\_\+frames)
\begin{DoxyCompactList}\small\item\em Set number of frames stored in this pose. \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{classFrameAnimationT_adb994e1cc0eba80ae361a92d7cfd4c50}{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{classFrameAnimationT_a6109f881e225ebf2a42f3887af587127}{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}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classFrameAnimationT_a4469bdd63a27265ba0116615893425fc}\label{classFrameAnimationT_a4469bdd63a27265ba0116615893425fc}} 
\hyperlink{classSkeletonT}{Skeleton} $\ast$ \hyperlink{classFrameAnimationT_a4469bdd63a27265ba0116615893425fc}{skeleton\+\_\+}
\begin{DoxyCompactList}\small\item\em Pointer to associated skeleton. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classFrameAnimationT_a381689ffe0a179d5a5d655649260b147}\label{classFrameAnimationT_a381689ffe0a179d5a5d655649260b147}} 
std\+::vector$<$ \hyperlink{classPoseT}{Pose} $\ast$ $>$ \hyperlink{classFrameAnimationT_a381689ffe0a179d5a5d655649260b147}{poses\+\_\+}
\begin{DoxyCompactList}\small\item\em Every entry in this vector is a frame of the animation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classFrameAnimationT_a9c68027d454364bb949026efa3c2df9a}\label{classFrameAnimationT_a9c68027d454364bb949026efa3c2df9a}} 
{\footnotesize template$<$typename $>$ }\\class {\bfseries SkeletonT}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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



Definition at line 47 of file Frame\+Animation\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classFrameAnimationT_ab41f364a780b34b8662318a543ff8b73}\label{classFrameAnimationT_ab41f364a780b34b8662318a543ff8b73}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{Frame\+Animation\+T()}{FrameAnimationT()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::\hyperlink{classFrameAnimationT}{Frame\+AnimationT} (\begin{DoxyParamCaption}\item[{const \hyperlink{classPoseT}{PoseT}$<$ PointT $>$ \&}]{\+\_\+pose }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



Constructor -\/ Creates a new animation consisting of a single pose. 

The animation will hold a single frame, made up by a copy of the given pose. After this call returns the pose given by {\itshape \+\_\+pose} is no longer needed and independent from this instance.

You can use this operation to clone the reference pose as new instance, then modify the pose.


\begin{DoxyParams}{Parameters}
{\em \+\_\+pose} & This pose will make up the only frame in this new animation \\
\hline
\end{DoxyParams}


Definition at line 62 of file Frame\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classFrameAnimationT_a77e30adf1720f18c886deb2d96c45430}\label{classFrameAnimationT_a77e30adf1720f18c886deb2d96c45430}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{Frame\+Animation\+T()}{FrameAnimationT()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::\hyperlink{classFrameAnimationT}{Frame\+AnimationT} (\begin{DoxyParamCaption}\item[{\hyperlink{classSkeletonT}{Skeleton} $\ast$}]{\+\_\+skeleton }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



Constructor -\/ Creates a new empty animation. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+skeleton} & The skeleton that will hold this animation \\
\hline
\end{DoxyParams}


Definition at line 75 of file Frame\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classFrameAnimationT_aaf6bdae2484dcd6362b2bea029fdbe12}\label{classFrameAnimationT_aaf6bdae2484dcd6362b2bea029fdbe12}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{Frame\+Animation\+T()}{FrameAnimationT()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::\hyperlink{classFrameAnimationT}{Frame\+AnimationT} (\begin{DoxyParamCaption}\item[{\hyperlink{classSkeletonT}{Skeleton} $\ast$}]{\+\_\+skeleton,  }\item[{unsigned int}]{\+\_\+i\+Num\+Frames }\end{DoxyParamCaption})}



Constructor -\/ Creates a new animation with the given number of frames. 

The poses in the given number of frames will all hold identity matrices for all joints. Make sure you write data to the poses before you use it.


\begin{DoxyParams}{Parameters}
{\em \+\_\+skeleton} & The skeleton that will hold this animation \\
\hline
{\em \+\_\+i\+Num\+Frames} & The number of frames for this animation \\
\hline
\end{DoxyParams}


Definition at line 92 of file Frame\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classFrameAnimationT_aaa8bf428531ae3b9a8bb6e8a8ff9e9f8}\label{classFrameAnimationT_aaa8bf428531ae3b9a8bb6e8a8ff9e9f8}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\index{Frame\+AnimationT@{Frame\+AnimationT}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{Frame\+Animation\+T()}{FrameAnimationT()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::\hyperlink{classFrameAnimationT}{Frame\+AnimationT} (\begin{DoxyParamCaption}\item[{const \hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$ \&}]{\+\_\+other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



Copy constructor. 

This animation will copy all frames from the given animation. After the call returns they are completely independent.


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


Definition at line 110 of file Frame\+Animation\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classFrameAnimationT_adb994e1cc0eba80ae361a92d7cfd4c50}\label{classFrameAnimationT_adb994e1cc0eba80ae361a92d7cfd4c50}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!insert\+Joint\+At@{insert\+Joint\+At}}
\index{insert\+Joint\+At@{insert\+Joint\+At}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{insert\+Joint\+At()}{insertJointAt()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::insert\+Joint\+At (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Called by the skeleton as a new joint is inserted. 

The call is dispatched to all poses stored in this animation. See Base\+Pose\+T$<$$>$\+::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}


Implements \hyperlink{classAnimationT}{Animation\+T$<$ Point\+T $>$}.



Definition at line 181 of file Frame\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classFrameAnimationT_ae981361c6d29c0e0b6d3e0f4877c9561}\label{classFrameAnimationT_ae981361c6d29c0e0b6d3e0f4877c9561}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!pose@{pose}}
\index{pose@{pose}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{pose()}{pose()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::pose (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+i\+Frame }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Returns a pointer to the pose stored in the given frame. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i\+Frame} & The poses frame number \\
\hline
\end{DoxyParams}


Implements \hyperlink{classAnimationT}{Animation\+T$<$ Point\+T $>$}.



Definition at line 145 of file Frame\+Animation\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classFrameAnimationT_a6109f881e225ebf2a42f3887af587127}\label{classFrameAnimationT_a6109f881e225ebf2a42f3887af587127}} 
\index{Frame\+AnimationT@{Frame\+AnimationT}!remove\+Joint\+At@{remove\+Joint\+At}}
\index{remove\+Joint\+At@{remove\+Joint\+At}!Frame\+AnimationT@{Frame\+AnimationT}}
\subsubsection{\texorpdfstring{remove\+Joint\+At()}{removeJointAt()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classFrameAnimationT}{Frame\+AnimationT}$<$ PointT $>$\+::remove\+Joint\+At (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\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}


Implements \hyperlink{classAnimationT}{Animation\+T$<$ Point\+T $>$}.



Definition at line 191 of file Frame\+Animation\+T\+\_\+impl.\+hh.

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



Updates the local matrix using the global matrix. 

Called when a joints parent is changed.


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


Implements \hyperlink{classAnimationT}{Animation\+T$<$ Point\+T $>$}.



Definition at line 207 of file Frame\+Animation\+T\+\_\+impl.\+hh.



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