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

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

\item 
\hypertarget{a00602_a6d58517e7955dc29ec8aa890e1893f40}{typedef \hyperlink{a01190}{Skeleton\+T}$<$ Point\+T $>$ {\bfseries Skeleton}}\label{a00602_a6d58517e7955dc29ec8aa890e1893f40}

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

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00602_ab41f364a780b34b8662318a543ff8b73}{Frame\+Animation\+T} (const \hyperlink{a00996}{Pose\+T}$<$ Point\+T $>$ \&\+\_\+pose)
\begin{DoxyCompactList}\small\item\em Constructor -\/ Creates a new animation consisting of a single pose. \end{DoxyCompactList}\item 
\hyperlink{a00602_a77e30adf1720f18c886deb2d96c45430}{Frame\+Animation\+T} (\hyperlink{a01190}{Skeleton} $\ast$\+\_\+skeleton)
\begin{DoxyCompactList}\small\item\em Constructor -\/ Creates a new empty animation. \end{DoxyCompactList}\item 
\hyperlink{a00602_aaf6bdae2484dcd6362b2bea029fdbe12}{Frame\+Animation\+T} (\hyperlink{a01190}{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{a00602_aaa8bf428531ae3b9a8bb6e8a8ff9e9f8}{Frame\+Animation\+T} (const \hyperlink{a00602}{Frame\+Animation\+T}$<$ Point\+T $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hypertarget{a00602_a1ae46d695733a53cc484d5b1766e8800}{virtual \hyperlink{a00602_a1ae46d695733a53cc484d5b1766e8800}{$\sim$\+Frame\+Animation\+T} ()}\label{a00602_a1ae46d695733a53cc484d5b1766e8800}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00602_aded27e864d22463e0c9d77b7795118ce}{virtual \hyperlink{a00289}{Animation\+T}$<$ Point\+T $>$ $\ast$ \hyperlink{a00602_aded27e864d22463e0c9d77b7795118ce}{copy} ()}\label{a00602_aded27e864d22463e0c9d77b7795118ce}

\begin{DoxyCompactList}\small\item\em Copy Function. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00602_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}{\bf Frame access}\par
{\em There is one pose per frame. }\begin{DoxyCompactItemize}
\item 
\hyperlink{a00996}{Pose} $\ast$ \hyperlink{a00602_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 
\hypertarget{a00602_a903b6a2a816426cd2ee61f8313344768}{unsigned int \hyperlink{a00602_a903b6a2a816426cd2ee61f8313344768}{frame\+Count} ()}\label{a00602_a903b6a2a816426cd2ee61f8313344768}

\begin{DoxyCompactList}\small\item\em Returns the number of frames stored in this pose. \end{DoxyCompactList}\item 
\hypertarget{a00602_a67a760a8804b9fd3fe801cc569689de9}{void \hyperlink{a00602_a67a760a8804b9fd3fe801cc569689de9}{set\+Frame\+Count} (unsigned int \+\_\+frames)}\label{a00602_a67a760a8804b9fd3fe801cc569689de9}

\begin{DoxyCompactList}\small\item\em Set number of frames stored in this pose. \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{a00602_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{a00602_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 
\hypertarget{a00602_a4469bdd63a27265ba0116615893425fc}{\hyperlink{a01190}{Skeleton} $\ast$ \hyperlink{a00602_a4469bdd63a27265ba0116615893425fc}{skeleton\+\_\+}}\label{a00602_a4469bdd63a27265ba0116615893425fc}

\begin{DoxyCompactList}\small\item\em Pointer to associated skeleton. \end{DoxyCompactList}\item 
\hypertarget{a00602_a381689ffe0a179d5a5d655649260b147}{std\+::vector$<$ \hyperlink{a00996}{Pose} $\ast$ $>$ \hyperlink{a00602_a381689ffe0a179d5a5d655649260b147}{poses\+\_\+}}\label{a00602_a381689ffe0a179d5a5d655649260b147}

\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 
\hypertarget{a00602_a9c68027d454364bb949026efa3c2df9a}{{\footnotesize template$<$typename $>$ }\\class {\bfseries Skeleton\+T}}\label{a00602_a9c68027d454364bb949026efa3c2df9a}

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


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



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



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


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 68 of file Frame\+Animation\+T.\+cc.

\hypertarget{a00602_a77e30adf1720f18c886deb2d96c45430}{\index{Frame\+Animation\+T@{Frame\+Animation\+T}!Frame\+Animation\+T@{Frame\+Animation\+T}}
\index{Frame\+Animation\+T@{Frame\+Animation\+T}!Frame\+Animation\+T@{Frame\+Animation\+T}}
\subsubsection[{Frame\+Animation\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf Frame\+Animation\+T}$<$ Point\+T $>$\+::{\bf Frame\+Animation\+T} (
\begin{DoxyParamCaption}
\item[{{\bf Skeleton} $\ast$}]{\+\_\+skeleton}
\end{DoxyParamCaption}
)}}\label{a00602_a77e30adf1720f18c886deb2d96c45430}


Constructor -\/ Creates a new empty animation. 


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


Definition at line 81 of file Frame\+Animation\+T.\+cc.

\hypertarget{a00602_aaf6bdae2484dcd6362b2bea029fdbe12}{\index{Frame\+Animation\+T@{Frame\+Animation\+T}!Frame\+Animation\+T@{Frame\+Animation\+T}}
\index{Frame\+Animation\+T@{Frame\+Animation\+T}!Frame\+Animation\+T@{Frame\+Animation\+T}}
\subsubsection[{Frame\+Animation\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf Frame\+Animation\+T}$<$ Point\+T $>$\+::{\bf Frame\+Animation\+T} (
\begin{DoxyParamCaption}
\item[{{\bf Skeleton} $\ast$}]{\+\_\+skeleton, }
\item[{unsigned int}]{\+\_\+i\+Num\+Frames}
\end{DoxyParamCaption}
)}}\label{a00602_aaf6bdae2484dcd6362b2bea029fdbe12}


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 98 of file Frame\+Animation\+T.\+cc.

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


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 116 of file Frame\+Animation\+T.\+cc.



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


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


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



Definition at line 187 of file Frame\+Animation\+T.\+cc.

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


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



Definition at line 151 of file Frame\+Animation\+T.\+cc.

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


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



Definition at line 197 of file Frame\+Animation\+T.\+cc.

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


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



Definition at line 213 of file Frame\+Animation\+T.\+cc.



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