\hypertarget{classJointT}{}\section{JointT$<$ PointT $>$ Class Template Reference}
\label{classJointT}\index{Joint\+T$<$ Point\+T $>$@{Joint\+T$<$ Point\+T $>$}}


Represents a single joint in the skeleton.  




{\ttfamily \#include $<$Type-\/\+Skeleton/\+Object\+Types/\+Skeleton/\+Joint\+T.\+hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_aefdda20dcd154a29429f0b8b24eed031}\label{classJointT_aefdda20dcd154a29429f0b8b24eed031}} 
typedef PointT {\bfseries Point}
\item 
\mbox{\Hypertarget{classJointT_a9050f4db3697ecdb7533a39b4318c37c}\label{classJointT_a9050f4db3697ecdb7533a39b4318c37c}} 
typedef Point\+::value\+\_\+type {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classJointT_ad5c79e35aa4568eeb7114bb48feef0ff}\label{classJointT_ad5c79e35aa4568eeb7114bb48feef0ff}} 
typedef \hyperlink{classJointT}{JointT}$<$ PointT $>$ {\bfseries Joint}
\item 
\mbox{\Hypertarget{classJointT_a2157a0647b9804a61d602aeed4c84b65}\label{classJointT_a2157a0647b9804a61d602aeed4c84b65}} 
typedef std\+::vector$<$ \hyperlink{classJointT}{Joint} $\ast$ $>$\+::iterator {\bfseries Child\+Iter}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classJointT_a777f05fc8c3a684462fdb2afd0158b08}{JointT} (const \hyperlink{classJointT}{Joint} \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_affdb7c96c64d78155590b040a9c99044}\label{classJointT_affdb7c96c64d78155590b040a9c99044}} 
\hyperlink{classJointT_affdb7c96c64d78155590b040a9c99044}{JointT} (\hyperlink{classJointT}{Joint} $\ast$\+\_\+parent, std\+::string \+\_\+name=\char`\"{}\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor, creates a joint pointing to the origin. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_ab02a80b45ef6566788e6c1b0e7708044}\label{classJointT_ab02a80b45ef6566788e6c1b0e7708044}} 
\hyperlink{classJointT_ab02a80b45ef6566788e6c1b0e7708044}{$\sim$\+JointT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classJointT_a3b474af6bb87baac7f6c920ab228e42f}{id} () const
\begin{DoxyCompactList}\small\item\em returns the joint id \end{DoxyCompactList}\item 
void \hyperlink{classJointT_a0edb64b04c35375c4b950e97836e9201}{set\+Parent} (\hyperlink{classJointT}{Joint} $\ast$\+\_\+new\+Parent, \hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&\+\_\+skeleton)
\begin{DoxyCompactList}\small\item\em access parent of the joint \end{DoxyCompactList}\item 
\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classJointT_abc1ad433b8a324b77d06c5256258aabc}{parent} ()
\begin{DoxyCompactList}\small\item\em Returns the parent joint. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_aee34b535cca26e81ce9ff2e6c45f5573}\label{classJointT_aee34b535cca26e81ce9ff2e6c45f5573}} 
bool {\bfseries is\+Root} () const
\item 
\mbox{\Hypertarget{classJointT_aa1576fe9adb7278610e4a3c47f7db6f7}\label{classJointT_aa1576fe9adb7278610e4a3c47f7db6f7}} 
std\+::string \hyperlink{classJointT_aa1576fe9adb7278610e4a3c47f7db6f7}{name} () const
\begin{DoxyCompactList}\small\item\em Access the name of the joint. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a7f5d0995382f89c4743f9486182b4a2b}\label{classJointT_a7f5d0995382f89c4743f9486182b4a2b}} 
void {\bfseries set\+Name} (const std\+::string \&\+\_\+name)
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Child access}\par
{\em Use this iterator to access the joints child nodes }\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_a7867b0aa2ca4e03d62ae581948b7dc2d}\label{classJointT_a7867b0aa2ca4e03d62ae581948b7dc2d}} 
Child\+Iter \hyperlink{classJointT_a7867b0aa2ca4e03d62ae581948b7dc2d}{begin} ()
\begin{DoxyCompactList}\small\item\em Returns an iterator on the joints children. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a1cea292819497eed0c426390d2989deb}\label{classJointT_a1cea292819497eed0c426390d2989deb}} 
Child\+Iter \hyperlink{classJointT_a1cea292819497eed0c426390d2989deb}{end} ()
\begin{DoxyCompactList}\small\item\em Returns the end iterator for the joints children. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a25dab9163b596a0dc02594a7edbbfe06}\label{classJointT_a25dab9163b596a0dc02594a7edbbfe06}} 
size\+\_\+t \hyperlink{classJointT_a25dab9163b596a0dc02594a7edbbfe06}{size} () const
\begin{DoxyCompactList}\small\item\em Returns the number of children. \end{DoxyCompactList}\item 
\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classJointT_a44e546047928006ddbabd88bd73cf86d}{child} (size\+\_\+t \+\_\+index)
\begin{DoxyCompactList}\small\item\em Returns the child joint with the given index. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Selections}\par
{\em change and access selection state }\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_a9b49340fc91fd2e6bee380856db6d7e7}\label{classJointT_a9b49340fc91fd2e6bee380856db6d7e7}} 
bool \hyperlink{classJointT_a9b49340fc91fd2e6bee380856db6d7e7}{selected} () const
\begin{DoxyCompactList}\small\item\em Returns the joint\textquotesingle{}s selection state. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_ae3322dc794f73312c0b54ea150486c3a}\label{classJointT_ae3322dc794f73312c0b54ea150486c3a}} 
void \hyperlink{classJointT_ae3322dc794f73312c0b54ea150486c3a}{set\+Selected} (bool \+\_\+selected)
\begin{DoxyCompactList}\small\item\em Set the joint\textquotesingle{}s selction state. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_a4f28a05410bfff7724536865d097fb84}\label{classJointT_a4f28a05410bfff7724536865d097fb84}} 
void {\bfseries set\+Id} (const size\+\_\+t \+\_\+id)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_afda1851351a41d4ad8d3df11955b5135}\label{classJointT_afda1851351a41d4ad8d3df11955b5135}} 
\hyperlink{classJointT}{Joint} $\ast$ \hyperlink{classJointT_afda1851351a41d4ad8d3df11955b5135}{parent\+\_\+}
\begin{DoxyCompactList}\small\item\em The parent joint; this joint is in its parents \hyperlink{classJointT_a924f948758d2a871ad24d45001c7b0e4}{Joint\+T\+::children\+\_\+} vector. It\textquotesingle{}s 0 for the root node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a924f948758d2a871ad24d45001c7b0e4}\label{classJointT_a924f948758d2a871ad24d45001c7b0e4}} 
std\+::vector$<$ \hyperlink{classJointT}{Joint} $\ast$ $>$ \hyperlink{classJointT_a924f948758d2a871ad24d45001c7b0e4}{children\+\_\+}
\begin{DoxyCompactList}\small\item\em The joints children, use the Joint\+T\+::get\+Child method to access them. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a9b0aae619c29c6783b4508603379789b}\label{classJointT_a9b0aae619c29c6783b4508603379789b}} 
std\+::string \hyperlink{classJointT_a9b0aae619c29c6783b4508603379789b}{name\+\_\+}
\begin{DoxyCompactList}\small\item\em the name of the joint \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_a62ae096323837812bfeea8d60f8f774a}\label{classJointT_a62ae096323837812bfeea8d60f8f774a}} 
size\+\_\+t \hyperlink{classJointT_a62ae096323837812bfeea8d60f8f774a}{id\+\_\+}
\begin{DoxyCompactList}\small\item\em An unique identifier, guaranteed to be part of a continuous sequence starting from 0. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classJointT_a2e19c8be3f353fb835cc17cdfe1ec59e}\label{classJointT_a2e19c8be3f353fb835cc17cdfe1ec59e}} 
bool {\bfseries selected\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classJointT_a9c68027d454364bb949026efa3c2df9a}\label{classJointT_a9c68027d454364bb949026efa3c2df9a}} 
{\footnotesize template$<$class $>$ }\\class {\bfseries SkeletonT}
\end{DoxyCompactItemize}


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

Represents a single joint in the skeleton. 

The skeleton is made up by a hierarchical structure of joints. The joints don\textquotesingle{}t store their position themselves. Instead, the joint positions are stored in poses. The poses are managed by the \hyperlink{classAnimationT}{AnimationT} class and the skeleton. 

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



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classJointT_a777f05fc8c3a684462fdb2afd0158b08}\label{classJointT_a777f05fc8c3a684462fdb2afd0158b08}} 
\index{JointT@{JointT}!JointT@{JointT}}
\index{JointT@{JointT}!JointT@{JointT}}
\subsubsection{\texorpdfstring{Joint\+T()}{JointT()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classJointT}{JointT}$<$ PointT $>$\+::\hyperlink{classJointT}{JointT} (\begin{DoxyParamCaption}\item[{const \hyperlink{classJointT}{Joint} \&}]{\+\_\+other }\end{DoxyParamCaption})}



Constructor. 

Copy constructor, creates an incomplete copy of the given joint.

The parent and children cannot be copied, since they are provided as pointers only. Furthermore, if a skeleton is being cloned the corresponding joints may not yet exist in this skeleton. 

Definition at line 73 of file Joint\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classJointT_a44e546047928006ddbabd88bd73cf86d}\label{classJointT_a44e546047928006ddbabd88bd73cf86d}} 
\index{JointT@{JointT}!child@{child}}
\index{child@{child}!JointT@{JointT}}
\subsubsection{\texorpdfstring{child()}{child()}}
{\footnotesize\ttfamily template$<$typename PointT $>$ \\
\hyperlink{classJointT}{JointT}$<$ PointT $>$ $\ast$ \hyperlink{classJointT}{JointT}$<$ PointT $>$\+::child (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the child joint with the given index. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & The child nodes index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the child joint or zero if the index was out of range 
\end{DoxyReturn}


Definition at line 211 of file Joint\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classJointT_a3b474af6bb87baac7f6c920ab228e42f}\label{classJointT_a3b474af6bb87baac7f6c920ab228e42f}} 
\index{JointT@{JointT}!id@{id}}
\index{id@{id}!JointT@{JointT}}
\subsubsection{\texorpdfstring{id()}{id()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
size\+\_\+t \hyperlink{classJointT}{JointT}$<$ PointT $>$\+::id (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



returns the joint id 

Returns the joints index.

The index is part of a continuous sequence out of the interval \mbox{[}0, number of joints). It is guaranteed not to change, unless joints are deleted from the skeleton. 

Definition at line 97 of file Joint\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classJointT_abc1ad433b8a324b77d06c5256258aabc}\label{classJointT_abc1ad433b8a324b77d06c5256258aabc}} 
\index{JointT@{JointT}!parent@{parent}}
\index{parent@{parent}!JointT@{JointT}}
\subsubsection{\texorpdfstring{parent()}{parent()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classJointT}{JointT}$<$ PointT $>$ $\ast$ \hyperlink{classJointT}{JointT}$<$ PointT $>$\+::parent (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the parent joint. 

If you want to know the root position of a joint, then just take its parents global position. They always match, since a joint is always directly attached to its parent. 

Definition at line 156 of file Joint\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classJointT_a0edb64b04c35375c4b950e97836e9201}\label{classJointT_a0edb64b04c35375c4b950e97836e9201}} 
\index{JointT@{JointT}!set\+Parent@{set\+Parent}}
\index{set\+Parent@{set\+Parent}!JointT@{JointT}}
\subsubsection{\texorpdfstring{set\+Parent()}{setParent()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
void \hyperlink{classJointT}{JointT}$<$ PointT $>$\+::set\+Parent (\begin{DoxyParamCaption}\item[{\hyperlink{classJointT}{Joint} $\ast$}]{\+\_\+new\+Parent,  }\item[{\hyperlink{classSkeletonT}{SkeletonT}$<$ PointT $>$ \&}]{\+\_\+skeleton }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



access parent of the joint 

Replaces this joints parent joint.

After calling this method this joint is child of the given joint. Keep in mind that this will corrupt the joints local matrix in all poses.


\begin{DoxyParams}{Parameters}
{\em \+\_\+new\+Parent} & The new parent joint \\
\hline
{\em \+\_\+skeleton} & The skeleton this joint is part of, used to update the poses local matrices \\
\hline
\end{DoxyParams}


Definition at line 122 of file Joint\+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/Joint\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
