\hypertarget{a01187}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Skeleton\+Node\+T$<$ Skeleton\+Type $>$ Class Template Reference}
\label{a01187}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+Type $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+Type $>$}}
}


{\ttfamily \#include $<$A\+C$>$}

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Skeleton\+Node\+T$<$ Skeleton\+Type $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a01187}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01187_a2df437799fe84de556743bd52d7ae70d}{typedef Skeleton\+Type\+::\+Point {\bfseries Point}}\label{a01187_a2df437799fe84de556743bd52d7ae70d}

\item 
\hypertarget{a01187_a94b51c88230e215ae3e21c60bd899677}{typedef \hyperlink{a00751}{Joint\+T}$<$ typename \\*
Skeleton\+Type\+::\+Point $>$ {\bfseries Joint}}\label{a01187_a94b51c88230e215ae3e21c60bd899677}

\item 
\hypertarget{a01187_a8ebd910e8cf2cf266163780c1cca7a3a}{typedef Skeleton\+Type\+::\+Pose {\bfseries Pose}}\label{a01187_a8ebd910e8cf2cf266163780c1cca7a3a}

\item 
\hypertarget{a01187_a69c1639307b2075d04c401aab10be846}{typedef Skeleton\+Type\+::\+Matrix {\bfseries Matrix}}\label{a01187_a69c1639307b2075d04c401aab10be846}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01187_a36172f936bb307abf469b3e134e00007}{{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a01187}{Skeleton\+Node\+T})}\label{a01187_a36172f936bb307abf469b3e134e00007}

\item 
\hyperlink{a01187_ab22751bea25a7e01be8dbc0422b5a0a1}{Skeleton\+Node\+T} (Skeleton\+Type \&\+\_\+skeleton, \hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$Skeleton\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hyperlink{a01187_a8408c48ba599fa6c7e36aec7878e4bc4}{$\sim$\+Skeleton\+Node\+T} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
Skeleton\+Type \& \hyperlink{a01187_afdf875cf605fab09eb72046c9bed8cf0}{skeleton} ()
\begin{DoxyCompactList}\small\item\em Returns a pointer to the skeleton. \end{DoxyCompactList}\item 
\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a01187_ab2f8968c4311220274f12e634d13f59f}{available\+Draw\+Modes} () const 
\begin{DoxyCompactList}\small\item\em Returns available draw modes. \end{DoxyCompactList}\item 
void \hyperlink{a01187_af0fb1ed8c67e8105b3bddafaf92baee6}{bounding\+Box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)
\begin{DoxyCompactList}\small\item\em Returns the bounding box of this node. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a6b0b2a8c7b7215cbdb5063dca2c21956}{draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\begin{DoxyCompactList}\small\item\em Renders the nodes contents using the given render state and draw mode. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a975e6525b18c2d9c646623ee20731ff2}{pick} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target)
\begin{DoxyCompactList}\small\item\em Renders the node in picking mode, restricted to the node components given by {\itshape \+\_\+target}. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a74aeea6997b41bb1c6eb54104ebeabc9}{get\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a00789}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em Adds renderobjects to renderer for flexible shader pipeline. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a321d80c438c49138c903328564462456}{set\+Active\+Pose} (const \hyperlink{a00286}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Set the pose which should be rendered. \end{DoxyCompactList}\item 
\hyperlink{a00286}{Animation\+Handle} \hyperlink{a01187_a25cab7050bf9d1ef8e747b7c4a5abb37}{active\+Pose} ()
\begin{DoxyCompactList}\small\item\em Get the pose that is used for rendering. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a04bd352fc3516d22c5b27fe745c9790f}{show\+Coord\+Frames} (bool \+\_\+b\+Visible=true)
\begin{DoxyCompactList}\small\item\em Toggle visibility of coordinate frames for all joints. \end{DoxyCompactList}\item 
\hypertarget{a01187_a92d2fddd4b24c62c54f15a245ec1c15b}{bool {\bfseries coord\+Frames\+Visible} ()}\label{a01187_a92d2fddd4b24c62c54f15a245ec1c15b}

\item 
\hypertarget{a01187_a816901aeda8bb3a99fa74773a7ab44a8}{double \hyperlink{a01187_a816901aeda8bb3a99fa74773a7ab44a8}{frame\+Size} ()}\label{a01187_a816901aeda8bb3a99fa74773a7ab44a8}

\begin{DoxyCompactList}\small\item\em returns the size of the rendered coordinate system \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01187_a3cbef895fe0f97fabf50db7dd6260b0f}{pick\+\_\+vertices} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Pick method for vertices. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a8463de0c5afcd272cf092ab6e7ba36ce}{pick\+\_\+edges} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Pick method for edges. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a18d03af1cdbc7471261158d558b3dc35}{draw\+\_\+bone} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode, const Point \&\+\_\+parent, const Point \&\+\_\+axis)
\begin{DoxyCompactList}\small\item\em Helper function to draw the bones. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a2d12ba20192d52341e04e1acce16b39b}{add\+Bone\+To\+Renderer} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a01110}{Render\+Object} \&\+\_\+base, const Point \&\+\_\+parent, const Point \&\+\_\+axis)
\begin{DoxyCompactList}\small\item\em Helper function to create a renderobject for bones. \end{DoxyCompactList}\item 
\hypertarget{a01187_a2750ea00a95a0ea9a023dd7d8851bc65}{void \hyperlink{a01187_a2750ea00a95a0ea9a023dd7d8851bc65}{compute\+Cone\+Matrices} (const \hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf} \&\+\_\+model\+View, const Point \&\+\_\+parent, const Point \&\+\_\+axis, \hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf} $\ast$\+\_\+out\+Cone0, \hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf} $\ast$\+\_\+out\+Cone1)}\label{a01187_a2750ea00a95a0ea9a023dd7d8851bc65}

\begin{DoxyCompactList}\small\item\em Helper function to compute modelview matrices for the two cones composing a bone. \end{DoxyCompactList}\item 
void \hyperlink{a01187_ae1a8a596e734686937031bf48d4e8efb}{Normalize\+Coordinate\+Frame} (Matrix \&\+\_\+mat)
\begin{DoxyCompactList}\small\item\em Normalizes a coordinate frame defined by the given matrix. \end{DoxyCompactList}\item 
void \hyperlink{a01187_a7a47217fc2935b32a95c823afbfa0271}{get\+Joint\+Color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+base\+Color, \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+result)
\begin{DoxyCompactList}\small\item\em get a joint color suitable to the base\+Color \end{DoxyCompactList}\item 
void \hyperlink{a01187_aa38c3b653ce2b6434ef6e67b0cfdc984}{H\+S\+Vto\+R\+G\+B} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+\+H\+S\+V, \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+\+R\+G\+B)
\begin{DoxyCompactList}\small\item\em Convert H\+S\+V color to R\+G\+B. \end{DoxyCompactList}\item 
void \hyperlink{a01187_ae4fb8020b4d47adc3ee82e6395e0deb1}{R\+G\+Bto\+H\+S\+V} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+\+R\+G\+B, \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+\+H\+S\+V)
\begin{DoxyCompactList}\small\item\em Convert R\+G\+B color to H\+S\+V. \end{DoxyCompactList}\item 
double \hyperlink{a01187_af2735ac777977c3b0f44ad0f4b7abf40}{unproject\+Point\+Size} (double \+\_\+point\+Size, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+point, \hyperlink{a00643}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Simulate gl\+Point\+Size(12) with a sphere. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01187_a44349e6abadef60db9e687d2e44f5160}{bool \hyperlink{a01187_a44349e6abadef60db9e687d2e44f5160}{b\+Coord\+Frames\+Visible\+\_\+}}\label{a01187_a44349e6abadef60db9e687d2e44f5160}

\begin{DoxyCompactList}\small\item\em Coordinate frames are visible if this is true, not visible if false. \end{DoxyCompactList}\item 
\hypertarget{a01187_a6577454ab2236b730f07fc6779bc8658}{Skeleton\+Type \& \hyperlink{a01187_a6577454ab2236b730f07fc6779bc8658}{skeleton\+\_\+}}\label{a01187_a6577454ab2236b730f07fc6779bc8658}

\begin{DoxyCompactList}\small\item\em The skeleton nodes skeleton. \end{DoxyCompactList}\item 
\hypertarget{a01187_a47eb54da7d930bb775ed79d6321ec453}{\hyperlink{a00286}{Animation\+Handle} \hyperlink{a01187_a47eb54da7d930bb775ed79d6321ec453}{h\+Ani\+\_\+}}\label{a01187_a47eb54da7d930bb775ed79d6321ec453}

\begin{DoxyCompactList}\small\item\em The active pose, this one is going to be rendered. \end{DoxyCompactList}\item 
\hypertarget{a01187_a3aecea51998deef54ea7e4a327777534}{double \hyperlink{a01187_a3aecea51998deef54ea7e4a327777534}{f\+Frame\+Size\+\_\+}}\label{a01187_a3aecea51998deef54ea7e4a327777534}

\begin{DoxyCompactList}\small\item\em size for the coord-\/frame \end{DoxyCompactList}\item 
\hypertarget{a01187_a2164caacb4158ef0162a494733807eff}{int {\bfseries slices\+\_\+}}\label{a01187_a2164caacb4158ef0162a494733807eff}

\item 
\hypertarget{a01187_a18c59b7d00e04845efe9fba03f50b2ff}{int {\bfseries stacks\+\_\+}}\label{a01187_a18c59b7d00e04845efe9fba03f50b2ff}

\item 
\hypertarget{a01187_ae91604c6b5df3b61e4647aff8404caf3}{\hyperlink{a00641}{A\+C\+G\+::\+G\+L\+Sphere} $\ast$ {\bfseries sphere\+\_\+}}\label{a01187_ae91604c6b5df3b61e4647aff8404caf3}

\item 
\hypertarget{a01187_a5e08dbc58d91654585a327497b040ea1}{\hyperlink{a00632}{A\+C\+G\+::\+G\+L\+Cone} $\ast$ {\bfseries cone\+\_\+}}\label{a01187_a5e08dbc58d91654585a327497b040ea1}

\item 
\hypertarget{a01187_ad238f59e3b6769e17ffc4634298e4e74}{\hyperlink{a00633}{A\+C\+G\+::\+G\+L\+Cylinder} $\ast$ {\bfseries cylinder\+\_\+}}\label{a01187_ad238f59e3b6769e17ffc4634298e4e74}

\item 
\hypertarget{a01187_ab319447fb110643ae0bb785f16dda875}{Geometry\+Buffer \hyperlink{a01187_ab319447fb110643ae0bb785f16dda875}{point\+Instance\+Data\+\_\+}}\label{a01187_ab319447fb110643ae0bb785f16dda875}

\begin{DoxyCompactList}\small\item\em per instance data of joint spheres \end{DoxyCompactList}\item 
\hypertarget{a01187_a8c4da3b2acdb378afa6ce717567efb06}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries point\+Instance\+Decl\+\_\+}}\label{a01187_a8c4da3b2acdb378afa6ce717567efb06}

\item 
\hypertarget{a01187_a9809c70d5b7ec5c9d40d45e8e0e14be1}{Geometry\+Buffer \hyperlink{a01187_a9809c70d5b7ec5c9d40d45e8e0e14be1}{bone\+Instance\+Data\+\_\+}}\label{a01187_a9809c70d5b7ec5c9d40d45e8e0e14be1}

\begin{DoxyCompactList}\small\item\em per instance data of bones \end{DoxyCompactList}\item 
\hypertarget{a01187_adb5f65ce45f1bc0acb39ccdee85e1873}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries bone\+Instance\+Decl\+\_\+}}\label{a01187_adb5f65ce45f1bc0acb39ccdee85e1873}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Skeleton\+Type$>$class A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+Type $>$}

/.../\+Skeleton\+Node\+T.hh$>$

Brief Description.

A more elaborate description follows. 

Definition at line 83 of file Skeleton\+Node\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a01187_ab22751bea25a7e01be8dbc0422b5a0a1}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!Skeleton\+Node\+T@{Skeleton\+Node\+T}}
\index{Skeleton\+Node\+T@{Skeleton\+Node\+T}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{Skeleton\+Node\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type$>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::{\bf Skeleton\+Node\+T} (
\begin{DoxyParamCaption}
\item[{Skeleton\+Type \&}]{\+\_\+skeleton, }
\item[{{\bf Base\+Node} $\ast$}]{\+\_\+parent = {\ttfamily 0}, }
\item[{std\+::string}]{\+\_\+name = {\ttfamily \char`\"{}$<$SkeletonNode$>$\char`\"{}}}
\end{DoxyParamCaption}
)}}\label{a01187_ab22751bea25a7e01be8dbc0422b5a0a1}


Constructor. 



Definition at line 81 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a8408c48ba599fa6c7e36aec7878e4bc4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!````~Skeleton\+Node\+T@{$\sim$\+Skeleton\+Node\+T}}
\index{````~Skeleton\+Node\+T@{$\sim$\+Skeleton\+Node\+T}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{$\sim$\+Skeleton\+Node\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::$\sim${\bf Skeleton\+Node\+T} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a01187_a8408c48ba599fa6c7e36aec7878e4bc4}


Destructor. 



Definition at line 104 of file Skeleton\+Node\+T.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a01187_a25cab7050bf9d1ef8e747b7c4a5abb37}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!active\+Pose@{active\+Pose}}
\index{active\+Pose@{active\+Pose}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{active\+Pose}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ {\bf Animation\+Handle} {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::active\+Pose (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a01187_a25cab7050bf9d1ef8e747b7c4a5abb37}


Get the pose that is used for rendering. 

Returns the active pose set with \hyperlink{a01187_a321d80c438c49138c903328564462456}{Skeleton\+Node\+T\+::set\+Active\+Pose}. 

Definition at line 726 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a2d12ba20192d52341e04e1acce16b39b}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!add\+Bone\+To\+Renderer@{add\+Bone\+To\+Renderer}}
\index{add\+Bone\+To\+Renderer@{add\+Bone\+To\+Renderer}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{add\+Bone\+To\+Renderer}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::add\+Bone\+To\+Renderer (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{{\bf Render\+Object} \&}]{\+\_\+base, }
\item[{const Point \&}]{\+\_\+parent, }
\item[{const Point \&}]{\+\_\+axis}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_a2d12ba20192d52341e04e1acce16b39b}


Helper function to create a renderobject for bones. 



Definition at line 635 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_ab2f8968c4311220274f12e634d13f59f}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!available\+Draw\+Modes@{available\+Draw\+Modes}}
\index{available\+Draw\+Modes@{available\+Draw\+Modes}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{available\+Draw\+Modes}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ {\bf Draw\+Modes\+::\+Draw\+Mode} {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::available\+Draw\+Modes (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01187_ab2f8968c4311220274f12e634d13f59f}


Returns available draw modes. 



Reimplemented from \hyperlink{a00328_ad0f2ceb5083801533c4711b468f67bc5}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 159 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_af0fb1ed8c67e8105b3bddafaf92baee6}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!bounding\+Box@{bounding\+Box}}
\index{bounding\+Box@{bounding\+Box}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{bounding\+Box}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::bounding\+Box (
\begin{DoxyParamCaption}
\item[{{\bf Vec3d} \&}]{\+\_\+bb\+Min, }
\item[{{\bf Vec3d} \&}]{\+\_\+bb\+Max}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01187_af0fb1ed8c67e8105b3bddafaf92baee6}


Returns the bounding box of this node. 



Reimplemented from \hyperlink{a00328_ac956bf4aae718f4cb89c78979dc47280}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 135 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a6b0b2a8c7b7215cbdb5063dca2c21956}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!draw@{draw}}
\index{draw@{draw}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{draw}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::draw (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode}
\end{DoxyParamCaption}
)}}\label{a01187_a6b0b2a8c7b7215cbdb5063dca2c21956}


Renders the nodes contents using the given render state and draw mode. 



Definition at line 320 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a18d03af1cdbc7471261158d558b3dc35}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!draw\+\_\+bone@{draw\+\_\+bone}}
\index{draw\+\_\+bone@{draw\+\_\+bone}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{draw\+\_\+bone}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::draw\+\_\+bone (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+draw\+Mode, }
\item[{const Point \&}]{\+\_\+parent, }
\item[{const Point \&}]{\+\_\+axis}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_a18d03af1cdbc7471261158d558b3dc35}


Helper function to draw the bones. 



Definition at line 607 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a7a47217fc2935b32a95c823afbfa0271}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!get\+Joint\+Color@{get\+Joint\+Color}}
\index{get\+Joint\+Color@{get\+Joint\+Color}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{get\+Joint\+Color}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::get\+Joint\+Color (
\begin{DoxyParamCaption}
\item[{const {\bf Vec4f} \&}]{\+\_\+base\+Color, }
\item[{{\bf Vec4f} \&}]{\+\_\+result}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_a7a47217fc2935b32a95c823afbfa0271}


get a joint color suitable to the base\+Color 

get suitable color for the joint

Definition at line 497 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a74aeea6997b41bb1c6eb54104ebeabc9}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{get\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::get\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode, }
\item[{const {\bf Material} $\ast$}]{\+\_\+mat}
\end{DoxyParamCaption}
)}}\label{a01187_a74aeea6997b41bb1c6eb54104ebeabc9}


Adds renderobjects to renderer for flexible shader pipeline. 

Generates renderobjects instead of direct draw calls for better rendering management. 

Definition at line 782 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_aa38c3b653ce2b6434ef6e67b0cfdc984}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!H\+S\+Vto\+R\+G\+B@{H\+S\+Vto\+R\+G\+B}}
\index{H\+S\+Vto\+R\+G\+B@{H\+S\+Vto\+R\+G\+B}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{H\+S\+Vto\+R\+G\+B}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::H\+S\+Vto\+R\+G\+B (
\begin{DoxyParamCaption}
\item[{const {\bf Vec4f} \&}]{\+\_\+\+H\+S\+V, }
\item[{{\bf Vec4f} \&}]{\+\_\+\+R\+G\+B}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_aa38c3b653ce2b6434ef6e67b0cfdc984}


Convert H\+S\+V color to R\+G\+B. 

Converts the color from H\+S\+V color space to R\+G\+B.

H is in range \mbox{[}0, 360\mbox{]}, S and V in \mbox{[}0, 1\mbox{]}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \+\_\+\+H\+S\+V} & An array of 3 G\+Lfloats, holding H, S and V \\
\hline
\mbox{\tt out}  & {\em \+\_\+\+R\+G\+B} & An array of 3 G\+Lfloats, holding R, G and B \\
\hline
\end{DoxyParams}


Definition at line 207 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_ae1a8a596e734686937031bf48d4e8efb}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!Normalize\+Coordinate\+Frame@{Normalize\+Coordinate\+Frame}}
\index{Normalize\+Coordinate\+Frame@{Normalize\+Coordinate\+Frame}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{Normalize\+Coordinate\+Frame}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::Normalize\+Coordinate\+Frame (
\begin{DoxyParamCaption}
\item[{Matrix \&}]{\+\_\+mat}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_ae1a8a596e734686937031bf48d4e8efb}


Normalizes a coordinate frame defined by the given matrix. 



Definition at line 182 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a975e6525b18c2d9c646623ee20731ff2}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!pick@{pick}}
\index{pick@{pick}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{pick}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::pick (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{{\bf Pick\+Target}}]{\+\_\+target}
\end{DoxyParamCaption}
)}}\label{a01187_a975e6525b18c2d9c646623ee20731ff2}


Renders the node in picking mode, restricted to the node components given by {\itshape \+\_\+target}. 



Definition at line 518 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a8463de0c5afcd272cf092ab6e7ba36ce}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!pick\+\_\+edges@{pick\+\_\+edges}}
\index{pick\+\_\+edges@{pick\+\_\+edges}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{pick\+\_\+edges}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::pick\+\_\+edges (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_a8463de0c5afcd272cf092ab6e7ba36ce}


Pick method for edges. 



Definition at line 576 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a3cbef895fe0f97fabf50db7dd6260b0f}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!pick\+\_\+vertices@{pick\+\_\+vertices}}
\index{pick\+\_\+vertices@{pick\+\_\+vertices}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{pick\+\_\+vertices}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::pick\+\_\+vertices (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_a3cbef895fe0f97fabf50db7dd6260b0f}


Pick method for vertices. 



Definition at line 552 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_ae4fb8020b4d47adc3ee82e6395e0deb1}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!R\+G\+Bto\+H\+S\+V@{R\+G\+Bto\+H\+S\+V}}
\index{R\+G\+Bto\+H\+S\+V@{R\+G\+Bto\+H\+S\+V}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{R\+G\+Bto\+H\+S\+V}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::R\+G\+Bto\+H\+S\+V (
\begin{DoxyParamCaption}
\item[{const {\bf Vec4f} \&}]{\+\_\+\+R\+G\+B, }
\item[{{\bf Vec4f} \&}]{\+\_\+\+H\+S\+V}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_ae4fb8020b4d47adc3ee82e6395e0deb1}


Convert R\+G\+B color to H\+S\+V. 

Converts a color from R\+G\+B color space to H\+S\+V.

Red, green and blue are in the range \mbox{[}0, 1\mbox{]}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em \+\_\+\+R\+G\+B} & An array of 3 G\+Lfloats, holding R, G and B \\
\hline
\mbox{\tt in}  & {\em \+\_\+\+H\+S\+V} & An array of 3 G\+Lfloats, holding H, S and V \\
\hline
\end{DoxyParams}


Definition at line 268 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a321d80c438c49138c903328564462456}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!set\+Active\+Pose@{set\+Active\+Pose}}
\index{set\+Active\+Pose@{set\+Active\+Pose}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{set\+Active\+Pose}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::set\+Active\+Pose (
\begin{DoxyParamCaption}
\item[{const {\bf Animation\+Handle} \&}]{\+\_\+h\+Ani}
\end{DoxyParamCaption}
)}}\label{a01187_a321d80c438c49138c903328564462456}


Set the pose which should be rendered. 

Selects the active pose.

The active pose is the pose that is drawn to the viewport. If the animation handle is invalid (-\/1), the default pose will be drawn.

\begin{DoxyWarning}{Warning}
Do not call this method directly, call \hyperlink{a01188_a6cb837ac63114e86f07c528a72252df2}{Skeleton\+Object\+::set\+Active\+Pose} instead. The object has to be notified, in order to properly update the text node positions.
\end{DoxyWarning}

\begin{DoxyParams}{Parameters}
{\em \+\_\+h\+Ani} & A handle to an animation, or an invalid handle for the default pose. \\
\hline
\end{DoxyParams}


Definition at line 714 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_a04bd352fc3516d22c5b27fe745c9790f}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!show\+Coord\+Frames@{show\+Coord\+Frames}}
\index{show\+Coord\+Frames@{show\+Coord\+Frames}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{show\+Coord\+Frames}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::show\+Coord\+Frames (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+b\+Visible = {\ttfamily true}}
\end{DoxyParamCaption}
)}}\label{a01187_a04bd352fc3516d22c5b27fe745c9790f}


Toggle visibility of coordinate frames for all joints. 



Definition at line 738 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_afdf875cf605fab09eb72046c9bed8cf0}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!skeleton@{skeleton}}
\index{skeleton@{skeleton}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{skeleton}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ Skeleton\+Type \& {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::skeleton (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a01187_afdf875cf605fab09eb72046c9bed8cf0}


Returns a pointer to the skeleton. 



Definition at line 123 of file Skeleton\+Node\+T.\+cc.

\hypertarget{a01187_af2735ac777977c3b0f44ad0f4b7abf40}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}!unproject\+Point\+Size@{unproject\+Point\+Size}}
\index{unproject\+Point\+Size@{unproject\+Point\+Size}!A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}}
\subsubsection[{unproject\+Point\+Size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Skeleton\+Type $>$ double {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T}$<$ Skeleton\+Type $>$\+::unproject\+Point\+Size (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+point\+Size, }
\item[{const {\bf Vec3d} \&}]{\+\_\+point, }
\item[{{\bf G\+L\+State} \&}]{\+\_\+state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01187_af2735ac777977c3b0f44ad0f4b7abf40}


Simulate gl\+Point\+Size(12) with a sphere. 

Compute the radius of a sphere simulating gl\+Point\+Size after projection.

Definition at line 755 of file Skeleton\+Node\+T.\+cc.



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