\hypertarget{classSkeletalAnimationPlugin}{}\section{Skeletal\+Animation\+Plugin Class Reference}
\label{classSkeletalAnimationPlugin}\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}


The skeletal animation plugin is used to interact with the skeleton.  




{\ttfamily \#include $<$Plugin-\/\+Skeletal\+Animation/\+Skeletal\+Animation\+Plugin.\+hh$>$}

Inheritance diagram for Skeletal\+Animation\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.212121cm]{classSkeletalAnimationPlugin}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classSkeletalAnimationPlugin_a835b6e78686f5f8e431bbfca0af4009b}{slot\+All\+Cleared} ()
\begin{DoxyCompactList}\small\item\em clear all occurred \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2037639646c43e30a4aec1cf04603aa5}\label{classSkeletalAnimationPlugin_a2037639646c43e30a4aec1cf04603aa5}} 
void \hyperlink{classSkeletalAnimationPlugin_a2037639646c43e30a4aec1cf04603aa5}{slot\+Object\+Updated} (int \+\_\+id, const \hyperlink{classUpdateType}{Update\+Type} \&\+\_\+type)
\begin{DoxyCompactList}\small\item\em Check active\+Pose if a skeleton was updated. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a846b281b814d1901af6b71b773aa03ed}{slot\+Object\+Selection\+Changed} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Update ui when the object selection changes. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_ac752dbfe88f57a316a46b3f9daeb6cc2}{file\+Opened} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Update ui when the object is loaded. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a338a6010ebeac300fa885900e25fcd23}{added\+Empty\+Object} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Update ui when the object is added. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_ace2398fb405ca09c249f81e50ef65c47}{object\+Deleted} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Update ui when the object is deleted. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a63076ca3f4e83ec3a3d4a894ad67dca9}\label{classSkeletalAnimationPlugin_a63076ca3f4e83ec3a3d4a894ad67dca9}} 
void \hyperlink{classSkeletalAnimationPlugin_a63076ca3f4e83ec3a3d4a894ad67dca9}{Update\+UI} ()
\begin{DoxyCompactList}\small\item\em Called when the active object changes and the interface needs to be updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a9287aa1c420f5d96c71179791dc4f95e}\label{classSkeletalAnimationPlugin_a9287aa1c420f5d96c71179791dc4f95e}} 
void \hyperlink{classSkeletalAnimationPlugin_a9287aa1c420f5d96c71179791dc4f95e}{set\+Combo\+Box\+Position} (unsigned int \+\_\+animation\+Index)
\begin{DoxyCompactList}\small\item\em Sets the animations combo box to the right entry. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a95ab4626b01a541f95ecdbc00475528b}{check\+Object\+Selection} (const int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Check source/target selection of objects. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a689559225e6f3f72c9c3afe4f39e136d}\label{classSkeletalAnimationPlugin_a689559225e6f3f72c9c3afe4f39e136d}} 
void {\bfseries slot\+Animation\+Name\+Changed} ()
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Scripting interface}\par
{\em Use these methods in the script editor. }\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_afef46e3a1c2974df6667ea948dfb5004}\label{classSkeletalAnimationPlugin_afef46e3a1c2974df6667ea948dfb5004}} 
int \hyperlink{classSkeletalAnimationPlugin_afef46e3a1c2974df6667ea948dfb5004}{get\+Number\+Of\+Frames} ()
\begin{DoxyCompactList}\small\item\em Returns the number of frames in the currently active animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_ae2eb4b36b6eaddea4f025fcb56b698a5}\label{classSkeletalAnimationPlugin_ae2eb4b36b6eaddea4f025fcb56b698a5}} 
bool \hyperlink{classSkeletalAnimationPlugin_ae2eb4b36b6eaddea4f025fcb56b698a5}{attach\+Skin} (int skeleton\+Id, int skin\+Id)
\begin{DoxyCompactList}\small\item\em Returns the number of frames in the currently active animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_ad1534126ee39db387dde29bca5e6fe0b}\label{classSkeletalAnimationPlugin_ad1534126ee39db387dde29bca5e6fe0b}} 
bool \hyperlink{classSkeletalAnimationPlugin_ad1534126ee39db387dde29bca5e6fe0b}{detach\+Skin} (int skeleton\+Id, int skin\+Id)
\begin{DoxyCompactList}\small\item\em Returns the number of frames in the currently active animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a61db2b468eeecc4df3171eb776b1e943}\label{classSkeletalAnimationPlugin_a61db2b468eeecc4df3171eb776b1e943}} 
bool \hyperlink{classSkeletalAnimationPlugin_a61db2b468eeecc4df3171eb776b1e943}{clear\+Skins} (int skeleton\+Id)
\begin{DoxyCompactList}\small\item\em Returns the number of frames in the currently active animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2d0f51dc9c8c64c8b42022261b8a369d}\label{classSkeletalAnimationPlugin_a2d0f51dc9c8c64c8b42022261b8a369d}} 
void \hyperlink{classSkeletalAnimationPlugin_a2d0f51dc9c8c64c8b42022261b8a369d}{set\+Frame} (int \+\_\+i\+Frame)
\begin{DoxyCompactList}\small\item\em Displays the given frame from the current animation and updates the view. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a0ee919428738b6f840695be90093806f}\label{classSkeletalAnimationPlugin_a0ee919428738b6f840695be90093806f}} 
int \hyperlink{classSkeletalAnimationPlugin_a0ee919428738b6f840695be90093806f}{get\+Frame} ()
\begin{DoxyCompactList}\small\item\em Gets the current frame number. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_ac6af7c5a96d7c6b679ebd0b62cd4a783}\label{classSkeletalAnimationPlugin_ac6af7c5a96d7c6b679ebd0b62cd4a783}} 
void \hyperlink{classSkeletalAnimationPlugin_ac6af7c5a96d7c6b679ebd0b62cd4a783}{change\+F\+PS} (int \+\_\+fps)
\begin{DoxyCompactList}\small\item\em Change the frames per second (F\+PS) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a0d2caabc76b3510bef988c4b4673a72b}\label{classSkeletalAnimationPlugin_a0d2caabc76b3510bef988c4b4673a72b}} 
void \hyperlink{classSkeletalAnimationPlugin_a0d2caabc76b3510bef988c4b4673a72b}{play\+Animation} ()
\begin{DoxyCompactList}\small\item\em Called by the ui and starts an automatic animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2fd1fe55a93026781e6196fc86552a5f}\label{classSkeletalAnimationPlugin_a2fd1fe55a93026781e6196fc86552a5f}} 
void \hyperlink{classSkeletalAnimationPlugin_a2fd1fe55a93026781e6196fc86552a5f}{pause\+Animation} ()
\begin{DoxyCompactList}\small\item\em Called by the ui and stops the current animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2cabd50468853b9eeba8c3bdef20cc38}\label{classSkeletalAnimationPlugin_a2cabd50468853b9eeba8c3bdef20cc38}} 
void \hyperlink{classSkeletalAnimationPlugin_a2cabd50468853b9eeba8c3bdef20cc38}{stop\+Animation} ()
\begin{DoxyCompactList}\small\item\em Called by the ui and stops the current animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_af2d7a8c07cafcd9c60bf82afe7d5a8dd}\label{classSkeletalAnimationPlugin_af2d7a8c07cafcd9c60bf82afe7d5a8dd}} 
void \hyperlink{classSkeletalAnimationPlugin_af2d7a8c07cafcd9c60bf82afe7d5a8dd}{next\+Frame} ()
\begin{DoxyCompactList}\small\item\em Called by the ui and goes to next frame of the current animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a98bbee901cd21c70d0f2fe6ae6a629bd}\label{classSkeletalAnimationPlugin_a98bbee901cd21c70d0f2fe6ae6a629bd}} 
void \hyperlink{classSkeletalAnimationPlugin_a98bbee901cd21c70d0f2fe6ae6a629bd}{prev\+Frame} ()
\begin{DoxyCompactList}\small\item\em Called by the ui and goes to previous frame of the current animation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_af65867562c4cc9d4ee53e53026fef86d}\label{classSkeletalAnimationPlugin_af65867562c4cc9d4ee53e53026fef86d}} 
void \hyperlink{classSkeletalAnimationPlugin_af65867562c4cc9d4ee53e53026fef86d}{update\+Skins} ()
\begin{DoxyCompactList}\small\item\em Returns the number of frames in the currently active animation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a3075d30d9c14b71235a25020382fdf45}\label{classSkeletalAnimationPlugin_a3075d30d9c14b71235a25020382fdf45}} 
void {\bfseries update\+View} ()
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_abd69f90238741e85c34dd2bee0829f1d}\label{classSkeletalAnimationPlugin_abd69f90238741e85c34dd2bee0829f1d}} 
void {\bfseries log} (\hyperlink{LoggingInterface_8hh_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_afa1830c927fc95404467ac93137288f5}\label{classSkeletalAnimationPlugin_afa1830c927fc95404467ac93137288f5}} 
void {\bfseries log} (Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_acd11c1f911c50ddd03a2bf63582cff50}\label{classSkeletalAnimationPlugin_acd11c1f911c50ddd03a2bf63582cff50}} 
void {\bfseries add\+Empty\+Object} (\hyperlink{classDataType}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2665adbafd80ed415ea1ba2c18f7b520}\label{classSkeletalAnimationPlugin_a2665adbafd80ed415ea1ba2c18f7b520}} 
void {\bfseries updated\+Object} (int \+\_\+id, const \hyperlink{classUpdateType}{Update\+Type} \&\+\_\+type)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a655c9d2f69b169036fb39e35215875c9}\label{classSkeletalAnimationPlugin_a655c9d2f69b169036fb39e35215875c9}} 
void {\bfseries plugin\+Exists} (Q\+String \+\_\+plugin\+Name, bool \&\+\_\+exists)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a5a85ab415435115a44c3c3b1e11907d0}\label{classSkeletalAnimationPlugin_a5a85ab415435115a44c3c3b1e11907d0}} 
void {\bfseries function\+Exists} (Q\+String \+\_\+plugin\+Name, Q\+String \+\_\+function\+Name, bool \&\+\_\+exists)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a309760c20809280a85d8c3df5cac6d9d}\label{classSkeletalAnimationPlugin_a309760c20809280a85d8c3df5cac6d9d}} 
void {\bfseries add\+Toolbox} (Q\+String \+\_\+name, Q\+Widget $\ast$\+\_\+widget, Q\+Icon $\ast$\+\_\+icon)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classSkeletalAnimationPlugin_aaf7d858de88883df609860f22fa818d0}{Skeletal\+Animation\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
Q\+String \hyperlink{classSkeletalAnimationPlugin_a228a18ef37d3664a1dd05fae084e6147}{name} ()
\begin{DoxyCompactList}\small\item\em returns the plugin name \end{DoxyCompactList}\item 
Q\+String \hyperlink{classSkeletalAnimationPlugin_ae7f2563114d0c28bac1ca9cae700b9f4}{description} ()
\begin{DoxyCompactList}\small\item\em returns a plugin description \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classAnimationHandle}{Animation\+Handle} \hyperlink{classSkeletalAnimationPlugin_acbeff696c62addd75f261dfd5cb72f8a}{current\+Animation\+Handle} ()
\begin{DoxyCompactList}\small\item\em Returns a handle describing the current frame in the active animation. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a868dd19955b227552ec3d81942547ddd}{Update\+Skins} (\hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$\+\_\+p\+Skeleton\+Object, \hyperlink{classAnimationHandle}{Animation\+Handle} \&\+\_\+h\+Ani)
\begin{DoxyCompactList}\small\item\em Changes the mesh\textquotesingle{}s pose to represent the frame given by the animation handle. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_aecd94277f45c4f490a08e081809de331}\label{classSkeletalAnimationPlugin_aecd94277f45c4f490a08e081809de331}} 
\hyperlink{classAnimationToolboxWidget}{Animation\+Toolbox\+Widget} $\ast$ \hyperlink{classSkeletalAnimationPlugin_aecd94277f45c4f490a08e081809de331}{p\+Toolbox\+\_\+}
\begin{DoxyCompactList}\small\item\em A pointer to the toolbox widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_afea5212532b3eac8120856e389e3ed33}\label{classSkeletalAnimationPlugin_afea5212532b3eac8120856e389e3ed33}} 
Q\+Icon $\ast$ {\bfseries tool\+Icon\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a69a51327ad2fa63bf3b9e49771819739}\label{classSkeletalAnimationPlugin_a69a51327ad2fa63bf3b9e49771819739}} 
void {\bfseries set\+Descriptions} ()
\item 
void \hyperlink{classSkeletalAnimationPlugin_a5ef34d68bad25467ed4bd19c10e2eea9}{initialize\+Plugin} ()
\begin{DoxyCompactList}\small\item\em initialize the plugin \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a658fdca844228500ea22b35a7d47334f}{plugins\+Initialized} ()
\begin{DoxyCompactList}\small\item\em final initializations \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a0368e08b942f3df1a90ce0b2f29b46dc}{exit} ()
\begin{DoxyCompactList}\small\item\em Plugin gets closed. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a4338bbb3f2ba6e2570301dc24e261679}\label{classSkeletalAnimationPlugin_a4338bbb3f2ba6e2570301dc24e261679}} 
void \hyperlink{classSkeletalAnimationPlugin_a4338bbb3f2ba6e2570301dc24e261679}{slot\+Attach\+Skin} ()
\begin{DoxyCompactList}\small\item\em Called by Qt as the user is trying to connect a mesh to a skeleton. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a9615063d1732ad8ecdd1ab4cdd742f20}\label{classSkeletalAnimationPlugin_a9615063d1732ad8ecdd1ab4cdd742f20}} 
void \hyperlink{classSkeletalAnimationPlugin_a9615063d1732ad8ecdd1ab4cdd742f20}{slot\+Clear\+Skins} ()
\begin{DoxyCompactList}\small\item\em Called by Qt as the user is trying to unbind a mesh from as a skeleton. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a6ef2de353521f5cd6db075d8eeb2f947}{slot\+Method\+Changed} (int \+\_\+index)
\begin{DoxyCompactList}\small\item\em Called as the skin deformation method changed. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_afbc9cdfb289ae8f7a68508af606d40b2}\label{classSkeletalAnimationPlugin_afbc9cdfb289ae8f7a68508af606d40b2}} 
void \hyperlink{classSkeletalAnimationPlugin_afbc9cdfb289ae8f7a68508af606d40b2}{slot\+Animation\+Index\+Changed} (int)
\begin{DoxyCompactList}\small\item\em Called by the framework when the animation index changed. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_afc945258dd88a4e212e18caac4d30f43}\label{classSkeletalAnimationPlugin_afc945258dd88a4e212e18caac4d30f43}} 
void \hyperlink{classSkeletalAnimationPlugin_afc945258dd88a4e212e18caac4d30f43}{slot\+Frame\+Changed} (int)
\begin{DoxyCompactList}\small\item\em Called by the framework when a different frame was selected. \end{DoxyCompactList}\item 
void \hyperlink{classSkeletalAnimationPlugin_a4de8143f2ab36fbb2f4be563cad0c339}{slot\+Skip\+Frames\+Changed} (int \+\_\+state)
\begin{DoxyCompactList}\small\item\em Called as the skip frames check box changes state. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a08cf5771f677d8899a45b55bf46f59c7}\label{classSkeletalAnimationPlugin_a08cf5771f677d8899a45b55bf46f59c7}} 
void {\bfseries slot\+Add\+Animation} ()
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a7be9bb9b6eb11c705a885bd9d537bba0}\label{classSkeletalAnimationPlugin_a7be9bb9b6eb11c705a885bd9d537bba0}} 
void {\bfseries slot\+Delete\+Animation} ()
\item 
void \hyperlink{classSkeletalAnimationPlugin_aca1f5a6b33b3a980dc3ef69b3fad0a65}{animate} ()
\begin{DoxyCompactList}\small\item\em Iterates the animation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{Indent}\textbf{ Skin management}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_abd34e51736b5371d7568ddb7c94335e7}\label{classSkeletalAnimationPlugin_abd34e51736b5371d7568ddb7c94335e7}} 
void {\bfseries attach\+Skin} (\hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$p\+Skin, \hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$p\+Skeleton)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_aa0a05528459dd428d6beda5a9e4a7663}\label{classSkeletalAnimationPlugin_aa0a05528459dd428d6beda5a9e4a7663}} 
void {\bfseries detach\+Skin} (\hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$p\+Skin, \hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$p\+Skeleton)
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a2d496ce57c5e27009f087ed53935995a}\label{classSkeletalAnimationPlugin_a2d496ce57c5e27009f087ed53935995a}} 
void {\bfseries clear\+Skins} (\hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$\+\_\+p\+Skeleton)
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_abffbedc578ef8cf56917a4c3e8879156}\label{classSkeletalAnimationPlugin_abffbedc578ef8cf56917a4c3e8879156}} 
Blending\+::\+Method \hyperlink{classSkeletalAnimationPlugin_abffbedc578ef8cf56917a4c3e8879156}{method\+\_\+}
\begin{DoxyCompactList}\small\item\em The current blending method for the skin. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a06903672deb03a6a02fc180447cf7c7d}\label{classSkeletalAnimationPlugin_a06903672deb03a6a02fc180447cf7c7d}} 
bool \hyperlink{classSkeletalAnimationPlugin_a06903672deb03a6a02fc180447cf7c7d}{b\+Gui\+Updating\+\_\+}
\begin{DoxyCompactList}\small\item\em Used to drop a few messages while the gui is being updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_ae413b37aa24ebc8cf73f998752893dd1}\label{classSkeletalAnimationPlugin_ae413b37aa24ebc8cf73f998752893dd1}} 
Q\+Timer \hyperlink{classSkeletalAnimationPlugin_ae413b37aa24ebc8cf73f998752893dd1}{animation\+Timer\+\_\+}
\begin{DoxyCompactList}\small\item\em Timer used to control animations. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_adfc65ad8a2a611a87acd6998b1fc3ae4}\label{classSkeletalAnimationPlugin_adfc65ad8a2a611a87acd6998b1fc3ae4}} 
Q\+Time \hyperlink{classSkeletalAnimationPlugin_adfc65ad8a2a611a87acd6998b1fc3ae4}{animation\+Time\+\_\+}
\begin{DoxyCompactList}\small\item\em Time since the animation was started, used to meet the given fps. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a121cf1bdb2f19ee34c036c119b73ec55}\label{classSkeletalAnimationPlugin_a121cf1bdb2f19ee34c036c119b73ec55}} 
int \hyperlink{classSkeletalAnimationPlugin_a121cf1bdb2f19ee34c036c119b73ec55}{animation\+Offset\+\_\+}
\begin{DoxyCompactList}\small\item\em This frame was selected as the animation was started. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a1cce275c2d6fb216f1d8e274c368e88c}\label{classSkeletalAnimationPlugin_a1cce275c2d6fb216f1d8e274c368e88c}} 
std\+::vector$<$ int $>$ {\bfseries active\+Skeletons\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
The skeletal animation plugin is used to interact with the skeleton. 

this plugin controls the playback of skeletal animations 

Definition at line 61 of file Skeletal\+Animation\+Plugin.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classSkeletalAnimationPlugin_aaf7d858de88883df609860f22fa818d0}\label{classSkeletalAnimationPlugin_aaf7d858de88883df609860f22fa818d0}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{Skeletal\+Animation\+Plugin()}{SkeletalAnimationPlugin()}}
{\footnotesize\ttfamily Skeletal\+Animation\+Plugin\+::\+Skeletal\+Animation\+Plugin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Constructor. 



Definition at line 63 of file Skeletal\+Animation\+Plugin.\+cc.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classSkeletalAnimationPlugin_a338a6010ebeac300fa885900e25fcd23}\label{classSkeletalAnimationPlugin_a338a6010ebeac300fa885900e25fcd23}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!added\+Empty\+Object@{added\+Empty\+Object}}
\index{added\+Empty\+Object@{added\+Empty\+Object}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{added\+Empty\+Object}{addedEmptyObject}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::added\+Empty\+Object (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Update ui when the object is added. 



Definition at line 190 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_aca1f5a6b33b3a980dc3ef69b3fad0a65}\label{classSkeletalAnimationPlugin_aca1f5a6b33b3a980dc3ef69b3fad0a65}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!animate@{animate}}
\index{animate@{animate}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{animate}{animate}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::animate (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Iterates the animation. 

If frame skipping is disabled, the next frame will be drawn. Otherwise, the next frame is determined by the time that passed since the last call. 

Definition at line 592 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a95ab4626b01a541f95ecdbc00475528b}\label{classSkeletalAnimationPlugin_a95ab4626b01a541f95ecdbc00475528b}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!check\+Object\+Selection@{check\+Object\+Selection}}
\index{check\+Object\+Selection@{check\+Object\+Selection}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{check\+Object\+Selection}{checkObjectSelection}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::check\+Object\+Selection (\begin{DoxyParamCaption}\item[{const int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Check source/target selection of objects. 



Definition at line 235 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_acbeff696c62addd75f261dfd5cb72f8a}\label{classSkeletalAnimationPlugin_acbeff696c62addd75f261dfd5cb72f8a}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!current\+Animation\+Handle@{current\+Animation\+Handle}}
\index{current\+Animation\+Handle@{current\+Animation\+Handle}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{current\+Animation\+Handle()}{currentAnimationHandle()}}
{\footnotesize\ttfamily \hyperlink{classAnimationHandle}{Animation\+Handle} Skeletal\+Animation\+Plugin\+::current\+Animation\+Handle (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Returns a handle describing the current frame in the active animation. 

This information is derived from the corresponding combo box and slider. 

Definition at line 1039 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_ae7f2563114d0c28bac1ca9cae700b9f4}\label{classSkeletalAnimationPlugin_ae7f2563114d0c28bac1ca9cae700b9f4}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!description@{description}}
\index{description@{description}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String Skeletal\+Animation\+Plugin\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



returns a plugin description 



Implements \hyperlink{classBaseInterface_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 86 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a0368e08b942f3df1a90ce0b2f29b46dc}\label{classSkeletalAnimationPlugin_a0368e08b942f3df1a90ce0b2f29b46dc}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!exit@{exit}}
\index{exit@{exit}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{exit}{exit}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::exit (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Plugin gets closed. 



Definition at line 150 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_ac752dbfe88f57a316a46b3f9daeb6cc2}\label{classSkeletalAnimationPlugin_ac752dbfe88f57a316a46b3f9daeb6cc2}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!file\+Opened@{file\+Opened}}
\index{file\+Opened@{file\+Opened}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{file\+Opened}{fileOpened}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::file\+Opened (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Update ui when the object is loaded. 



Definition at line 181 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a5ef34d68bad25467ed4bd19c10e2eea9}\label{classSkeletalAnimationPlugin_a5ef34d68bad25467ed4bd19c10e2eea9}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!initialize\+Plugin@{initialize\+Plugin}}
\index{initialize\+Plugin@{initialize\+Plugin}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{initialize\+Plugin}{initializePlugin}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::initialize\+Plugin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



initialize the plugin 



Definition at line 96 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a228a18ef37d3664a1dd05fae084e6147}\label{classSkeletalAnimationPlugin_a228a18ef37d3664a1dd05fae084e6147}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!name@{name}}
\index{name@{name}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String Skeletal\+Animation\+Plugin\+::name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



returns the plugin name 



Implements \hyperlink{classBaseInterface_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 76 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_ace2398fb405ca09c249f81e50ef65c47}\label{classSkeletalAnimationPlugin_ace2398fb405ca09c249f81e50ef65c47}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!object\+Deleted@{object\+Deleted}}
\index{object\+Deleted@{object\+Deleted}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{object\+Deleted}{objectDeleted}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::object\+Deleted (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Update ui when the object is deleted. 



Definition at line 200 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a658fdca844228500ea22b35a7d47334f}\label{classSkeletalAnimationPlugin_a658fdca844228500ea22b35a7d47334f}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{plugins\+Initialized}{pluginsInitialized}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::plugins\+Initialized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



final initializations 



Definition at line 140 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a835b6e78686f5f8e431bbfca0af4009b}\label{classSkeletalAnimationPlugin_a835b6e78686f5f8e431bbfca0af4009b}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!slot\+All\+Cleared@{slot\+All\+Cleared}}
\index{slot\+All\+Cleared@{slot\+All\+Cleared}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{slot\+All\+Cleared}{slotAllCleared}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::slot\+All\+Cleared (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



clear all occurred 



Definition at line 159 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a6ef2de353521f5cd6db075d8eeb2f947}\label{classSkeletalAnimationPlugin_a6ef2de353521f5cd6db075d8eeb2f947}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!slot\+Method\+Changed@{slot\+Method\+Changed}}
\index{slot\+Method\+Changed@{slot\+Method\+Changed}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{slot\+Method\+Changed}{slotMethodChanged}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::slot\+Method\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Called as the skin deformation method changed. 

The spherical skin blending appears to be buggy, so it is recommended not to use it. 

Definition at line 639 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a846b281b814d1901af6b71b773aa03ed}\label{classSkeletalAnimationPlugin_a846b281b814d1901af6b71b773aa03ed}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!slot\+Object\+Selection\+Changed@{slot\+Object\+Selection\+Changed}}
\index{slot\+Object\+Selection\+Changed@{slot\+Object\+Selection\+Changed}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{slot\+Object\+Selection\+Changed}{slotObjectSelectionChanged}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::slot\+Object\+Selection\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Update ui when the object selection changes. 



Definition at line 171 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a4de8143f2ab36fbb2f4be563cad0c339}\label{classSkeletalAnimationPlugin_a4de8143f2ab36fbb2f4be563cad0c339}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!slot\+Skip\+Frames\+Changed@{slot\+Skip\+Frames\+Changed}}
\index{slot\+Skip\+Frames\+Changed@{slot\+Skip\+Frames\+Changed}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{slot\+Skip\+Frames\+Changed}{slotSkipFramesChanged}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::slot\+Skip\+Frames\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Called as the skip frames check box changes state. 

To prevent the animation playback from jumping, the animation timer is restarted here. 

Definition at line 620 of file Skeletal\+Animation\+Plugin.\+cc.

\mbox{\Hypertarget{classSkeletalAnimationPlugin_a868dd19955b227552ec3d81942547ddd}\label{classSkeletalAnimationPlugin_a868dd19955b227552ec3d81942547ddd}} 
\index{Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}!Update\+Skins@{Update\+Skins}}
\index{Update\+Skins@{Update\+Skins}!Skeletal\+Animation\+Plugin@{Skeletal\+Animation\+Plugin}}
\subsubsection{\texorpdfstring{Update\+Skins()}{UpdateSkins()}}
{\footnotesize\ttfamily void Skeletal\+Animation\+Plugin\+::\+Update\+Skins (\begin{DoxyParamCaption}\item[{\hyperlink{classBaseObjectData}{Base\+Object\+Data} $\ast$}]{\+\_\+skeleton\+Object,  }\item[{\hyperlink{classAnimationHandle}{Animation\+Handle} \&}]{\+\_\+h\+Ani }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Changes the mesh\textquotesingle{}s pose to represent the frame given by the animation handle. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+skeleton\+Object} & The object holding the skeleton, it is holding the pointer to the skin object \\
\hline
{\em \+\_\+h\+Ani} & A handle of the new animation/pose \\
\hline
\end{DoxyParams}


Definition at line 373 of file Skeletal\+Animation\+Plugin.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Skeletal\+Animation/Skeletal\+Animation\+Plugin.\+hh\item 
Plugin-\/\+Skeletal\+Animation/Skeletal\+Animation\+Plugin.\+cc\item 
Plugin-\/\+Skeletal\+Animation/Skeletal\+Animation\+Scripting.\+cc\end{DoxyCompactItemize}
