\hypertarget{classSkeletonT}{}\section{SkeletonT$<$ PointT $>$ Class Template Reference}
\label{classSkeletonT}\index{Skeleton\+T$<$ Point\+T $>$@{Skeleton\+T$<$ Point\+T $>$}}
Inheritance diagram for SkeletonT$<$ PointT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classSkeletonT}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classSkeletonT_1_1AnimationIterator}{Animation\+Iterator}
\begin{DoxyCompactList}\small\item\em \hyperlink{classSkeletonT_1_1Iterator}{Iterator} class for the animations attached to a skeleton. \end{DoxyCompactList}\item 
class \hyperlink{classSkeletonT_1_1Iterator}{Iterator}
\begin{DoxyCompactList}\small\item\em \hyperlink{classSkeletonT_1_1Iterator}{Iterator} class for the skeleton. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletonT_a51d0c5577a0e24933569eaedda4a2399}\label{classSkeletonT_a51d0c5577a0e24933569eaedda4a2399}} 
typedef PointT {\bfseries Point}
\item 
\mbox{\Hypertarget{classSkeletonT_a1c8822392cd6a6889476cc2963e914be}\label{classSkeletonT_a1c8822392cd6a6889476cc2963e914be}} 
typedef Point\+::value\+\_\+type {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classSkeletonT_aaea1ced36e6cd28f6d37d8cc2297bf79}\label{classSkeletonT_aaea1ced36e6cd28f6d37d8cc2297bf79}} 
typedef \hyperlink{classJointT}{JointT}$<$ Point $>$ {\bfseries Joint}
\item 
\mbox{\Hypertarget{classSkeletonT_a3a872058758f07b644c13c8a862f905c}\label{classSkeletonT_a3a872058758f07b644c13c8a862f905c}} 
typedef \hyperlink{classPoseT}{PoseT}$<$ PointT $>$ {\bfseries Pose}
\item 
\mbox{\Hypertarget{classSkeletonT_a714fc7451995b9a83d07e0e6de1eaee6}\label{classSkeletonT_a714fc7451995b9a83d07e0e6de1eaee6}} 
typedef \hyperlink{classAnimationT}{AnimationT}$<$ PointT $>$ {\bfseries Animation}
\item 
\mbox{\Hypertarget{classSkeletonT_a0736c4c03e436fc94f5bfb4f38369568}\label{classSkeletonT_a0736c4c03e436fc94f5bfb4f38369568}} 
typedef \hyperlink{classACG_1_1Matrix4x4T}{A\+C\+G\+::\+Matrix4x4T}$<$ Scalar $>$ {\bfseries Matrix}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classSkeletonT_a5903622c425040c46bfeb925f5a8533e}{SkeletonT} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{classSkeletonT_a953ce71208fba7903ccddd646bd51ec2}{SkeletonT} (const \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hyperlink{classSkeletonT}{SkeletonT} \& \hyperlink{classSkeletonT_aac20870e5ab4d710f08ce781d2fe01eb}{operator=} (const \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Assignment operator. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a648ea54c7936f1834d777fc0585f030f}\label{classSkeletonT_a648ea54c7936f1834d777fc0585f030f}} 
\hyperlink{classSkeletonT_a648ea54c7936f1834d777fc0585f030f}{$\sim$\+SkeletonT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Modifying the tree structure}\par
{\em Use these methods to edit the skeleton tree. }\begin{DoxyCompactItemize}
\item 
void \hyperlink{classSkeletonT_a1631f74df397f87ec44b5afa5a339bf4}{add\+Joint} (typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$\+\_\+p\+Parent, typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$\+\_\+p\+Joint)
\begin{DoxyCompactList}\small\item\em Adds a joint as child of a given parent joint. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletonT_ab81c3e2bc02fa7631bc2ff853518ad34}{insert\+Joint} (typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$\+\_\+p\+Child, typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$\+\_\+p\+Insert)
\begin{DoxyCompactList}\small\item\em insert a Joint given its future child joint \end{DoxyCompactList}\item 
void \hyperlink{classSkeletonT_af5a06892dd7d18a6d3509504911b4636}{remove\+Joint} (typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$\+\_\+p\+Joint)
\begin{DoxyCompactList}\small\item\em Remove the given joint from the tree. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletonT_a6821b1cf6e181dc8bc7247114885815f}{clear} ()
\begin{DoxyCompactList}\small\item\em Removes all joints from the skeleton. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Basic Joint Access}\par
{\em \label{classSkeletonT_JointAccess}%
\Hypertarget{classSkeletonT_JointAccess}%


Use these methods to access joints in the skeleton. }\begin{DoxyCompactItemize}
\item 
\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classSkeletonT_ae52805fb8d2e0b07edf648653f9aade1}{root} ()
\begin{DoxyCompactList}\small\item\em Returns the root joint. \end{DoxyCompactList}\item 
\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classSkeletonT_a8785317baea75e0e7315c25a94bdfb67}{joint} (const size\+\_\+t \&\+\_\+index)
\begin{DoxyCompactList}\small\item\em Returns the joint with the given index. \end{DoxyCompactList}\item 
int \hyperlink{classSkeletonT_ae525bc2744892392531b6638d7e9b26a}{parent} (size\+\_\+t \+\_\+joint)
\begin{DoxyCompactList}\small\item\em Returns the parents id of the given node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_aa1758e9aa7ae0b997758ff0e659110c3}\label{classSkeletonT_aa1758e9aa7ae0b997758ff0e659110c3}} 
size\+\_\+t \hyperlink{classSkeletonT_aa1758e9aa7ae0b997758ff0e659110c3}{child\+Count} (size\+\_\+t \+\_\+joint)
\begin{DoxyCompactList}\small\item\em Returns the number of children of the given node. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classSkeletonT_a85c1a7b5abc0d7e11a58c8ff5d076913}{child} (size\+\_\+t \+\_\+joint, size\+\_\+t \+\_\+child)
\begin{DoxyCompactList}\small\item\em Returns the child with the given index. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a115ce9e0148b31f8e66eea56cada1208}\label{classSkeletonT_a115ce9e0148b31f8e66eea56cada1208}} 
size\+\_\+t \hyperlink{classSkeletonT_a115ce9e0148b31f8e66eea56cada1208}{joint\+Count} ()
\begin{DoxyCompactList}\small\item\em Returns the number of joints. \end{DoxyCompactList}\item 
\hyperlink{classSkeletonT_1_1Iterator}{Iterator} \hyperlink{classSkeletonT_a0fe6ab4ddb20601bfba4d195e4e3c780}{begin} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classSkeletonT_1_1Iterator}{Iterator} over joints of the skeletal tree in T\+O\+P-\/\+D\+O\+WN order (from root to leafs) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_ad5e80649bdb640885fd1b905896d6fbb}\label{classSkeletonT_ad5e80649bdb640885fd1b905896d6fbb}} 
\hyperlink{classSkeletonT_1_1Iterator}{Iterator} \hyperlink{classSkeletonT_ad5e80649bdb640885fd1b905896d6fbb}{end} ()
\begin{DoxyCompactList}\small\item\em Compare an iterator with the return value of this method to test if it is done. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Animation}\par
{\em \label{classSkeletonT_AnimationAccess}%
\Hypertarget{classSkeletonT_AnimationAccess}%
 Use these methods to equip the skeleton with animation data. }\begin{DoxyCompactItemize}
\item 
\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classSkeletonT_a7e96e80691fc672b038ff2c81a732f8f}{pose} (const \hyperlink{classAnimationHandle}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Returns a pointer to the pose with the given animation handle. \end{DoxyCompactList}\item 
\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classSkeletonT_a089d5f7bae7aa66c5461d5e57a1f6358}{reference\+Pose} ()
\begin{DoxyCompactList}\small\item\em Returns a pointer to the reference pose. \end{DoxyCompactList}\item 
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletonT_a2a6af6bb29d734e9c40e9e2e2ba932c1}{add\+Animation} (std\+::string \+\_\+name, \hyperlink{classAnimationT}{Animation} $\ast$\+\_\+animation)
\begin{DoxyCompactList}\small\item\em Adds a new animation to the list. \end{DoxyCompactList}\item 
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletonT_abf3a46e985ac769e91d4e32b0f63f6c2}{clone\+Animation} (std\+::string \+\_\+name, const \hyperlink{classAnimationHandle}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Creates a new animation by cloning an existing one. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a398a067b07ff2655a15fdb9e0eced705}\label{classSkeletonT_a398a067b07ff2655a15fdb9e0eced705}} 
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletonT_a398a067b07ff2655a15fdb9e0eced705}{animation\+Handle} (std\+::string \+\_\+name)
\begin{DoxyCompactList}\small\item\em Get an \hyperlink{classAnimationHandle}{Animation\+Handle} to the animation with the given name. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a4a44784946e15d4b0b6157e6f625a6e6}\label{classSkeletonT_a4a44784946e15d4b0b6157e6f625a6e6}} 
\hyperlink{classAnimationT}{Animation} $\ast$ \hyperlink{classSkeletonT_a4a44784946e15d4b0b6157e6f625a6e6}{animation} (std\+::string \+\_\+name)
\begin{DoxyCompactList}\small\item\em Returns a pointer to the animation to the given name. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a67fe9009e4befb8611bb2f7514b9bcb3}\label{classSkeletonT_a67fe9009e4befb8611bb2f7514b9bcb3}} 
\hyperlink{classAnimationT}{Animation} $\ast$ \hyperlink{classSkeletonT_a67fe9009e4befb8611bb2f7514b9bcb3}{animation} (const \hyperlink{classAnimationHandle}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Returns a pointer to the animation to the given name. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a57e99b716deebef3f5d693dc212f58f3}\label{classSkeletonT_a57e99b716deebef3f5d693dc212f58f3}} 
void \hyperlink{classSkeletonT_a57e99b716deebef3f5d693dc212f58f3}{remove\+Animation} (std\+::string \+\_\+name)
\begin{DoxyCompactList}\small\item\em Removes an animation from the list. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_acdc93effbb9c7fbb3096084e940f2c1b}\label{classSkeletonT_acdc93effbb9c7fbb3096084e940f2c1b}} 
void \hyperlink{classSkeletonT_acdc93effbb9c7fbb3096084e940f2c1b}{remove\+Animation} (const \hyperlink{classAnimationHandle}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Removes an animation from the list. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a565a32956bcb38cd9d82e60e2f512b78}\label{classSkeletonT_a565a32956bcb38cd9d82e60e2f512b78}} 
void \hyperlink{classSkeletonT_a565a32956bcb38cd9d82e60e2f512b78}{clear\+Animations} ()
\begin{DoxyCompactList}\small\item\em Removes all animations. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletonT_a5721ebe1a6400cab1228db9409aa54a1}{replace\+Animation\+Name} (const std\+::string \&\+\_\+str\+Old, const std\+::string \&\+\_\+str\+New)
\begin{DoxyCompactList}\small\item\em Returns a pointer to the pose with the given animation handle. \end{DoxyCompactList}\item 
\hyperlink{classSkeletonT_1_1AnimationIterator}{Animation\+Iterator} \hyperlink{classSkeletonT_acc4f31c8b7005f39305b3c1af2dc714f}{animations\+Begin} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classSkeletonT_1_1Iterator}{Iterator} over the animations. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a127cffdc07b0ec3d060e45479331b447}\label{classSkeletonT_a127cffdc07b0ec3d060e45479331b447}} 
\hyperlink{classSkeletonT_1_1AnimationIterator}{Animation\+Iterator} \hyperlink{classSkeletonT_a127cffdc07b0ec3d060e45479331b447}{animations\+End} ()
\begin{DoxyCompactList}\small\item\em Returns an iterator pointing behind the last animation. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classSkeletonT_a291cae030d5f635cb55492ec642c06b9}{animation\+Count} ()
\begin{DoxyCompactList}\small\item\em Returns the number of animations stored in this skeleton. \end{DoxyCompactList}\item 
const std\+::string \& \hyperlink{classSkeletonT_aa52aeebc1486a9da7bf20d9c2e0bf4a8}{animation\+Name} (size\+\_\+t \+\_\+index)
\begin{DoxyCompactList}\small\item\em Returns the name of the animation with the given index. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classSkeletonT_a29b6bc3cfc7845cf3495dc49a10f7385}{update\+From\+Global} (size\+\_\+t \+\_\+id\+Joint)
\begin{DoxyCompactList}\small\item\em update the structure when parent changes for a joint \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletonT_abd4d02c493f9d01270b5f718f206e512}\label{classSkeletonT_abd4d02c493f9d01270b5f718f206e512}} 
std\+::vector$<$ \hyperlink{classJointT}{Joint} $\ast$ $>$ \hyperlink{classSkeletonT_abd4d02c493f9d01270b5f718f206e512}{joints\+\_\+}
\begin{DoxyCompactList}\small\item\em Joints of the skeleton. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a084b14393caa4e6f5c81a357cf746f59}\label{classSkeletonT_a084b14393caa4e6f5c81a357cf746f59}} 
std\+::map$<$ std\+::string, size\+\_\+t $>$ \hyperlink{classSkeletonT_a084b14393caa4e6f5c81a357cf746f59}{names\+\_\+}
\begin{DoxyCompactList}\small\item\em Binds a name to each animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_ab72782057bc3745e9f193ca05d653a1b}\label{classSkeletonT_ab72782057bc3745e9f193ca05d653a1b}} 
std\+::vector$<$ \hyperlink{classAnimationT}{Animation} $\ast$ $>$ \hyperlink{classSkeletonT_ab72782057bc3745e9f193ca05d653a1b}{animations\+\_\+}
\begin{DoxyCompactList}\small\item\em Animations defined on the skeleton. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletonT_a9eee78efb6d1d95744f4c49dd55c3838}\label{classSkeletonT_a9eee78efb6d1d95744f4c49dd55c3838}} 
\hyperlink{classPoseT}{Pose} \hyperlink{classSkeletonT_a9eee78efb6d1d95744f4c49dd55c3838}{reference\+Pose\+\_\+}
\begin{DoxyCompactList}\small\item\em The skeletons reference pose. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletonT_a118cad8c1eb2ea94b469cb023c9f8472}\label{classSkeletonT_a118cad8c1eb2ea94b469cb023c9f8472}} 
{\footnotesize template$<$typename $>$ }\\class {\bfseries JointT}
\end{DoxyCompactItemize}


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



Definition at line 50 of file Joint\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classSkeletonT_a5903622c425040c46bfeb925f5a8533e}\label{classSkeletonT_a5903622c425040c46bfeb925f5a8533e}} 
\index{SkeletonT@{SkeletonT}!SkeletonT@{SkeletonT}}
\index{SkeletonT@{SkeletonT}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{Skeleton\+T()}{SkeletonT()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classSkeletonT}{SkeletonT} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Default constructor. 

Default Constructor. 

Definition at line 371 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a953ce71208fba7903ccddd646bd51ec2}\label{classSkeletonT_a953ce71208fba7903ccddd646bd51ec2}} 
\index{SkeletonT@{SkeletonT}!SkeletonT@{SkeletonT}}
\index{SkeletonT@{SkeletonT}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{Skeleton\+T()}{SkeletonT()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classSkeletonT}{SkeletonT} (\begin{DoxyParamCaption}\item[{const \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&}]{\+\_\+other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



Copy constructor. 

Copy Constructor -\/ Creates a copy of the given skeleton.

The copy does not inherit properties. You have to copy them yourself if you need them in the clone. 

Definition at line 383 of file Skeleton\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classSkeletonT_a2a6af6bb29d734e9c40e9e2e2ba932c1}\label{classSkeletonT_a2a6af6bb29d734e9c40e9e2e2ba932c1}} 
\index{SkeletonT@{SkeletonT}!add\+Animation@{add\+Animation}}
\index{add\+Animation@{add\+Animation}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{add\+Animation()}{addAnimation()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::add\+Animation (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+name,  }\item[{\hyperlink{classAnimationT}{Animation} $\ast$}]{\+\_\+animation }\end{DoxyParamCaption})}



Adds a new animation to the list. 

The name is used to identify the animation. The \hyperlink{classAnimationHandle}{Animation\+Handle} to the animation becomes invalid as soon as an animation is removed. 

Definition at line 769 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a1631f74df397f87ec44b5afa5a339bf4}\label{classSkeletonT_a1631f74df397f87ec44b5afa5a339bf4}} 
\index{SkeletonT@{SkeletonT}!add\+Joint@{add\+Joint}}
\index{add\+Joint@{add\+Joint}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{add\+Joint()}{addJoint()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::add\+Joint (\begin{DoxyParamCaption}\item[{typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+p\+Parent,  }\item[{typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+p\+Joint }\end{DoxyParamCaption})}



Adds a joint as child of a given parent joint. 

Pass 0 as parent if you want to set a new root joint. This will remove all joints from the skeleton, clean the properties and clear all animation data.


\begin{DoxyParams}{Parameters}
{\em \+\_\+p\+Parent} & The parent joint, 0 if the root is set \\
\hline
{\em \+\_\+p\+Joint} & The joint that has to be added to the tree \\
\hline
\end{DoxyParams}


Definition at line 488 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a291cae030d5f635cb55492ec642c06b9}\label{classSkeletonT_a291cae030d5f635cb55492ec642c06b9}} 
\index{SkeletonT@{SkeletonT}!animation\+Count@{animation\+Count}}
\index{animation\+Count@{animation\+Count}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{animation\+Count()}{animationCount()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
size\+\_\+t \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::animation\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the number of animations stored in this skeleton. 

\begin{DoxySeeAlso}{See also}
\hyperlink{classSkeletonT_aa52aeebc1486a9da7bf20d9c2e0bf4a8}{animation\+Name} 
\end{DoxySeeAlso}


Definition at line 965 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_aa52aeebc1486a9da7bf20d9c2e0bf4a8}\label{classSkeletonT_aa52aeebc1486a9da7bf20d9c2e0bf4a8}} 
\index{SkeletonT@{SkeletonT}!animation\+Name@{animation\+Name}}
\index{animation\+Name@{animation\+Name}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{animation\+Name()}{animationName()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
const std\+::string \& \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::animation\+Name (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+index }\end{DoxyParamCaption})}



Returns the name of the animation with the given index. 

\begin{DoxySeeAlso}{See also}
\hyperlink{classSkeletonT_a291cae030d5f635cb55492ec642c06b9}{animation\+Count} 
\end{DoxySeeAlso}


Definition at line 978 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_acc4f31c8b7005f39305b3c1af2dc714f}\label{classSkeletonT_acc4f31c8b7005f39305b3c1af2dc714f}} 
\index{SkeletonT@{SkeletonT}!animations\+Begin@{animations\+Begin}}
\index{animations\+Begin@{animations\+Begin}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{animations\+Begin()}{animationsBegin()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classSkeletonT_1_1AnimationIterator}{Animation\+Iterator} \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::animations\+Begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\hyperlink{classSkeletonT_1_1Iterator}{Iterator} over the animations. 

Returns an iterator pointing to the first animation. 

Definition at line 939 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a0fe6ab4ddb20601bfba4d195e4e3c780}\label{classSkeletonT_a0fe6ab4ddb20601bfba4d195e4e3c780}} 
\index{SkeletonT@{SkeletonT}!begin@{begin}}
\index{begin@{begin}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{begin()}{begin()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classSkeletonT_1_1Iterator}{Iterator} \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\hyperlink{classSkeletonT_1_1Iterator}{Iterator} over joints of the skeletal tree in T\+O\+P-\/\+D\+O\+WN order (from root to leafs) 

Returns an iterator pointing to the root joint.

Use the iterator to traverse the skeleton in a top-\/down, \char`\"{}left-\/to-\/right\char`\"{} manner. 

Definition at line 708 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a85c1a7b5abc0d7e11a58c8ff5d076913}\label{classSkeletonT_a85c1a7b5abc0d7e11a58c8ff5d076913}} 
\index{SkeletonT@{SkeletonT}!child@{child}}
\index{child@{child}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{child()}{child()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
size\+\_\+t \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::child (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+joint,  }\item[{size\+\_\+t}]{\+\_\+child }\end{DoxyParamCaption})}



Returns the child with the given index. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+joint} & An index identifying a joint \\
\hline
{\em \+\_\+child} & An index identifying a child of that joint \\
\hline
\end{DoxyParams}


Definition at line 684 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a6821b1cf6e181dc8bc7247114885815f}\label{classSkeletonT_a6821b1cf6e181dc8bc7247114885815f}} 
\index{SkeletonT@{SkeletonT}!clear@{clear}}
\index{clear@{clear}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{clear()}{clear()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::clear (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Removes all joints from the skeleton. 

This method also frees the memory occupied by the joints calling {\itshape delete} on each of them. Notice that all animations will be deleted as well, since without joint there cannot be animation. Also the properties are cleaned. 

Definition at line 593 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_abf3a46e985ac769e91d4e32b0f63f6c2}\label{classSkeletonT_abf3a46e985ac769e91d4e32b0f63f6c2}} 
\index{SkeletonT@{SkeletonT}!clone\+Animation@{clone\+Animation}}
\index{clone\+Animation@{clone\+Animation}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{clone\+Animation()}{cloneAnimation()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::clone\+Animation (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+name,  }\item[{const \hyperlink{classAnimationHandle}{Animation\+Handle} \&}]{\+\_\+h\+Ani }\end{DoxyParamCaption})}



Creates a new animation by cloning an existing one. 

All poses for all joints in all frames of the existing animation will be cloned. If the animation handle is invalid a copy of the default pose will be created. 

Definition at line 803 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_ab81c3e2bc02fa7631bc2ff853518ad34}\label{classSkeletonT_ab81c3e2bc02fa7631bc2ff853518ad34}} 
\index{SkeletonT@{SkeletonT}!insert\+Joint@{insert\+Joint}}
\index{insert\+Joint@{insert\+Joint}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{insert\+Joint()}{insertJoint()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::insert\+Joint (\begin{DoxyParamCaption}\item[{typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+p\+Child,  }\item[{typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+p\+Insert }\end{DoxyParamCaption})}



insert a Joint given its future child joint 


\begin{DoxyParams}{Parameters}
{\em \+\_\+p\+Child} & existing joint, will be the child \\
\hline
{\em \+\_\+p\+Insert} & joint, which will be inserted. \+\_\+p\+Child will be his child and the parent of \+\_\+p\+Child will be his parent. \\
\hline
\end{DoxyParams}


Definition at line 1016 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a8785317baea75e0e7315c25a94bdfb67}\label{classSkeletonT_a8785317baea75e0e7315c25a94bdfb67}} 
\index{SkeletonT@{SkeletonT}!joint@{joint}}
\index{joint@{joint}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{joint()}{joint()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::joint (\begin{DoxyParamCaption}\item[{const size\+\_\+t \&}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the joint with the given index. 

\hyperlink{classJointT_a62ae096323837812bfeea8d60f8f774a}{Joint\+T$<$$>$\+::id\+\_\+} is always equal to \+\_\+index.


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & The joints index, in the range \mbox{[}0, \hyperlink{classSkeletonT_a115ce9e0148b31f8e66eea56cada1208}{Skeleton\+T$<$$>$\+::joint\+Count}) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns a pointer to the joint or 0 if the index does not exist. 
\end{DoxyReturn}


Definition at line 636 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_aac20870e5ab4d710f08ce781d2fe01eb}\label{classSkeletonT_aac20870e5ab4d710f08ce781d2fe01eb}} 
\index{SkeletonT@{SkeletonT}!operator=@{operator=}}
\index{operator=@{operator=}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \& \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&}]{\+\_\+other }\end{DoxyParamCaption})}



Assignment operator. 

Assignment operator -\/ returns a copy of the skeleton.

The copy does not inherit properties. You have to copy them yourself if you need them in the clone. 

Definition at line 425 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_ae525bc2744892392531b6638d7e9b26a}\label{classSkeletonT_ae525bc2744892392531b6638d7e9b26a}} 
\index{SkeletonT@{SkeletonT}!parent@{parent}}
\index{parent@{parent}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{parent()}{parent()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
int \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::parent (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+joint }\end{DoxyParamCaption})}



Returns the parents id of the given node. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+joint} & A nodes index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The parent nodes index or -\/1 if {\itshape \+\_\+joint} is the root node 
\end{DoxyReturn}


Definition at line 652 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a7e96e80691fc672b038ff2c81a732f8f}\label{classSkeletonT_a7e96e80691fc672b038ff2c81a732f8f}} 
\index{SkeletonT@{SkeletonT}!pose@{pose}}
\index{pose@{pose}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{pose()}{pose()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::pose (\begin{DoxyParamCaption}\item[{const \hyperlink{classAnimationHandle}{Animation\+Handle} \&}]{\+\_\+h\+Ani }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a pointer to the pose with the given animation handle. 

If the animation handle is invalid the reference pose is returned. 

Definition at line 735 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a089d5f7bae7aa66c5461d5e57a1f6358}\label{classSkeletonT_a089d5f7bae7aa66c5461d5e57a1f6358}} 
\index{SkeletonT@{SkeletonT}!reference\+Pose@{reference\+Pose}}
\index{reference\+Pose@{reference\+Pose}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{reference\+Pose()}{referencePose()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classPoseT}{Pose} $\ast$ \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::reference\+Pose (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a pointer to the reference pose. 

Use this if you need access to the special data members of the reference pose. Notice you can also get the reference pose by passing \hyperlink{classAnimationHandle}{Animation\+Handle()} to the \hyperlink{classSkeletonT_a7e96e80691fc672b038ff2c81a732f8f}{Skeleton\+T$<$$>$\+::pose} method\+: 
\begin{DoxyCode}
\hyperlink{namespacePluginFunctions_a72e0406882d6f951e3ff8999d664f461}{skeleton}.\hyperlink{classSkeletonT_a7e96e80691fc672b038ff2c81a732f8f}{pose}(\hyperlink{classAnimationHandle}{AnimationHandle}());
\end{DoxyCode}
 

Definition at line 755 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_af5a06892dd7d18a6d3509504911b4636}\label{classSkeletonT_af5a06892dd7d18a6d3509504911b4636}} 
\index{SkeletonT@{SkeletonT}!remove\+Joint@{remove\+Joint}}
\index{remove\+Joint@{remove\+Joint}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{remove\+Joint()}{removeJoint()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::remove\+Joint (\begin{DoxyParamCaption}\item[{typename \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+p\+Joint }\end{DoxyParamCaption})}



Remove the given joint from the tree. 

This method will not only remove the given joint from the vector, it will also reduce the index of all joints with a larger index by one. This is to compensate for their new position in the vector and to make sure the sequence of indices is still continuous.

Also all poses and properties are updated. 

Definition at line 532 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a5721ebe1a6400cab1228db9409aa54a1}\label{classSkeletonT_a5721ebe1a6400cab1228db9409aa54a1}} 
\index{SkeletonT@{SkeletonT}!replace\+Animation\+Name@{replace\+Animation\+Name}}
\index{replace\+Animation\+Name@{replace\+Animation\+Name}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{replace\+Animation\+Name()}{replaceAnimationName()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::replace\+Animation\+Name (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+str\+Old,  }\item[{const std\+::string \&}]{\+\_\+str\+New }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a pointer to the pose with the given animation handle. 

If the animation handle is invalid the reference pose is returned. 

Definition at line 190 of file Skeleton\+T.\+hh.

\mbox{\Hypertarget{classSkeletonT_ae52805fb8d2e0b07edf648653f9aade1}\label{classSkeletonT_ae52805fb8d2e0b07edf648653f9aade1}} 
\index{SkeletonT@{SkeletonT}!root@{root}}
\index{root@{root}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{root()}{root()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::root (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the root joint. 

The root joint has always index 0.

\begin{DoxyReturn}{Returns}
Returns the root joint or 0 if the tree is empty 
\end{DoxyReturn}


Definition at line 618 of file Skeleton\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classSkeletonT_a29b6bc3cfc7845cf3495dc49a10f7385}\label{classSkeletonT_a29b6bc3cfc7845cf3495dc49a10f7385}} 
\index{SkeletonT@{SkeletonT}!update\+From\+Global@{update\+From\+Global}}
\index{update\+From\+Global@{update\+From\+Global}!SkeletonT@{SkeletonT}}
\subsubsection{\texorpdfstring{update\+From\+Global()}{updateFromGlobal()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
void \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$\+::update\+From\+Global (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+id\+Joint }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



update the structure when parent changes for a joint 

Updates the local matrix for the given joint in all poses.


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


Definition at line 998 of file Skeleton\+T\+\_\+impl.\+hh.



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