\hypertarget{class_ogre_1_1_animation}{}\doxysection{Ogre\+::Animation Class Reference}
\label{class_ogre_1_1_animation}\index{Ogre::Animation@{Ogre::Animation}}


An animation sequence.  




{\ttfamily \#include $<$Ogre\+Animation.\+h$>$}



Inheritance diagram for Ogre\+::Animation\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=176pt]{class_ogre_1_1_animation__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} \{ \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcda262ee3e33fe08932773f377f2595b142}{I\+M\+\_\+\+L\+I\+N\+E\+AR}}, 
\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcdaed6662637d5b6a2f79cdf5b60318fc9a}{I\+M\+\_\+\+S\+P\+L\+I\+NE}}
 \}
\begin{DoxyCompactList}\small\item\em The types of animation interpolation available. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$ \mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Node\+Track\+List}} $>$ \mbox{\hyperlink{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}{Node\+Track\+Iterator}}
\item 
typedef std\+::map$<$ unsigned short, \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Node\+Track\+List}}
\item 
typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$ \mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Numeric\+Track\+List}} $>$ \mbox{\hyperlink{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}{Numeric\+Track\+Iterator}}
\item 
typedef std\+::map$<$ unsigned short, \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Numeric\+Track\+List}}
\item 
enum \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} \{ \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32a9b235462ed2b49ff928bfc037775e18f}{R\+I\+M\+\_\+\+L\+I\+N\+E\+AR}}, 
\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32ae2332380356ba1b4aa4b30eef722ce40}{R\+I\+M\+\_\+\+S\+P\+H\+E\+R\+I\+C\+AL}}
 \}
\begin{DoxyCompactList}\small\item\em The types of rotational interpolation available. \end{DoxyCompactList}\item 
typedef std\+::set$<$ \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} $>$ \mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Track\+Handle\+List}}
\begin{DoxyCompactList}\small\item\em A list of track handles. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$ \mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Vertex\+Track\+List}} $>$ \mbox{\hyperlink{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}{Vertex\+Track\+Iterator}}
\item 
typedef std\+::map$<$ unsigned short, \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} $\ast$ $>$ \mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Vertex\+Track\+List}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_animation_aeece2a3468761504266fc13b1d45b9e8}{Animation}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&name, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} length)
\begin{DoxyCompactList}\small\item\em You should not use this constructor directly, use the parent object such as \mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} instead. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_animation_aaffbd7f99b0d72bb55c2ac42ad671acf}{$\sim$\+Animation}} ()
\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a0594747e21adfeb55c8b9fdff6b53487}{\+\_\+apply\+Base\+Key\+Frame}} ()
\begin{DoxyCompactList}\small\item\em Internal method to adjust keyframes relative to a base keyframe (. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a69017d271ad8b0f7f35905f6212a17eb}{\+\_\+collect\+Identity\+Node\+Tracks}} (\mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Track\+Handle\+List}} \&tracks) const
\begin{DoxyCompactList}\small\item\em Internal method for collecting identity node tracks. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a0efa76d209b69cbf6edb22565efbf710}{\+\_\+destroy\+Node\+Tracks}} (const \mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Track\+Handle\+List}} \&tracks)
\begin{DoxyCompactList}\small\item\em Internal method for destroy given node tracks. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Node\+Track\+List}} \& \mbox{\hyperlink{class_ogre_1_1_animation_ac8c738f599003e5b690a633fef62b47c}{\+\_\+get\+Node\+Track\+List}} (void) const
\begin{DoxyCompactList}\small\item\em Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE node track list. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Numeric\+Track\+List}} \& \mbox{\hyperlink{class_ogre_1_1_animation_affe0e2b8b5da4fadb91aca318b7b956a}{\+\_\+get\+Numeric\+Track\+List}} (void) const
\begin{DoxyCompactList}\small\item\em Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE numeric track list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_time_index}{Time\+Index}} \mbox{\hyperlink{class_ogre_1_1_animation_ae2faf3af9715730aa9435a8b568fc1ae}{\+\_\+get\+Time\+Index}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos) const
\begin{DoxyCompactList}\small\item\em Internal method used to convert time position to time index object. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Vertex\+Track\+List}} \& \mbox{\hyperlink{class_ogre_1_1_animation_aef2b7a15761fa745cf2a11fe953d5320}{\+\_\+get\+Vertex\+Track\+List}} (void) const
\begin{DoxyCompactList}\small\item\em Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE Vertex track list. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_ad8bcd32239c62f94ac26f07b30de6db0}{\+\_\+key\+Frame\+List\+Changed}} (void)
\begin{DoxyCompactList}\small\item\em Internal method used to tell the animation that keyframe list has been changed, which may cause it to rebuild some internal data. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a7deef4dd997370e01c59edc4f5d44500}{\+\_\+notify\+Container}} (\mbox{\hyperlink{class_ogre_1_1_animation_container}{Animation\+Container}} $\ast$c)
\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a452a33575f1b10818dc99f260fb799a8}{apply}} (\mbox{\hyperlink{class_ogre_1_1_entity}{Entity}} $\ast$entity, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight, bool software, bool hardware)
\begin{DoxyCompactList}\small\item\em Applies all vertex tracks given a specific time point and weight to a given entity. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_aa79ff8a4ddeb63225e6d68f6a16e9a24}{apply}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight=1.\+0, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} scale=1.\+0f)
\begin{DoxyCompactList}\small\item\em Applies an animation given a specific time point and weight. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_af200502c3f6eeaa8f1a8da39e8ada5d9}{apply}} (\mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} $\ast$skeleton, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, float weight, const \mbox{\hyperlink{class_ogre_1_1_animation_state_a4acdb34d7886a9ba6e9d7fd977be468c}{Animation\+State\+::\+Bone\+Blend\+Mask}} $\ast$blend\+Mask, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} scale)
\begin{DoxyCompactList}\small\item\em Applies all node tracks given a specific time point and weight to a given skeleton. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a5f874e1f76e045184f04f44ce1c94927}{apply}} (\mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} $\ast$skeleton, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight=1.\+0, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} scale=1.\+0f)
\begin{DoxyCompactList}\small\item\em Applies all node tracks given a specific time point and weight to a given skeleton. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_aba50b3776ef9ff01f182acfaf9e1cf02}{apply\+To\+Animable}} (const \mbox{\hyperlink{namespace_ogre_a5e0882c3b9f7ca32a795f98cf034e428}{Animable\+Value\+Ptr}} \&anim, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight=1.\+0, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} scale=1.\+0f)
\begin{DoxyCompactList}\small\item\em Applies all numeric tracks given a specific time point and weight to the specified animable value. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a18392d47fb421eb3131e2c6bc79e4fe1}{apply\+To\+Node}} (\mbox{\hyperlink{class_ogre_1_1_node}{Node}} $\ast$node, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight=1.\+0, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} scale=1.\+0f)
\begin{DoxyCompactList}\small\item\em Applies all node tracks given a specific time point and weight to the specified node. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a4221e6f98120b985e97ab59f62241bfc}{apply\+To\+Vertex\+Data}} (\mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}} $\ast$data, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} time\+Pos, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} weight=1.\+0)
\begin{DoxyCompactList}\small\item\em Applies all vertex tracks given a specific time point and weight to the specified vertex data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation}{Animation}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a1049d56ed8224a9cb01cad5a21604966}{clone}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&new\+Name) const \mbox{\hyperlink{_ogre_platform_8h_a11162eebee0099930c48076229cc6f04}{O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}}
\begin{DoxyCompactList}\small\item\em Clone this animation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a30787705fcfd9116eb228e6d6c55aa1c}{create\+Node\+Track}} (unsigned short handle)
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} for animating a \mbox{\hyperlink{class_ogre_1_1_node}{Node}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_aca1a073f6b8cd7acfd9fae1c70efcc67}{create\+Node\+Track}} (unsigned short handle, \mbox{\hyperlink{class_ogre_1_1_node}{Node}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Creates a new \mbox{\hyperlink{class_ogre_1_1_animation_track}{Animation\+Track}} automatically associated with a \mbox{\hyperlink{class_ogre_1_1_node}{Node}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a2a7c93bf69ae8c39cd5008a4ea0914bb}{create\+Numeric\+Track}} (unsigned short handle)
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} for animating any numeric value. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a617ebd1829597aab16a1487bb5e7db47}{create\+Numeric\+Track}} (unsigned short handle, const \mbox{\hyperlink{namespace_ogre_a5e0882c3b9f7ca32a795f98cf034e428}{Animable\+Value\+Ptr}} \&anim)
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} and associates it with an animable. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_aa57ef3d4c1957a1514baaaeb05a7a07c}{create\+Vertex\+Track}} (unsigned short handle, \mbox{\hyperlink{group___animation_ga9046e6e0d12c46c57a9056987e9d158e}{Vertex\+Animation\+Type}} anim\+Type)
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} for animating vertex position data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a2e0d15b479986999a34c85c11368b7d1}{create\+Vertex\+Track}} (unsigned short handle, \mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}} $\ast$data, \mbox{\hyperlink{group___animation_ga9046e6e0d12c46c57a9056987e9d158e}{Vertex\+Animation\+Type}} anim\+Type)
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} and associates it with \mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a571b7ec6d6894ee7352f991d4675fcec}{destroy\+All\+Node\+Tracks}} (void)
\begin{DoxyCompactList}\small\item\em Removes and destroys all tracks making up this animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_ad02ddb9aa24b16831d546d35ade27514}{destroy\+All\+Numeric\+Tracks}} (void)
\begin{DoxyCompactList}\small\item\em Removes and destroys all tracks making up this animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a38a092ec9280c0651b9af9c5a0f91d82}{destroy\+All\+Tracks}} (void)
\begin{DoxyCompactList}\small\item\em Removes and destroys all tracks making up this animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a9514493756471b0ab5d8cc473e291141}{destroy\+All\+Vertex\+Tracks}} (void)
\begin{DoxyCompactList}\small\item\em Removes and destroys all tracks making up this animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a8af56d49ff39965b5544f4714f60921e}{destroy\+Node\+Track}} (unsigned short handle)
\begin{DoxyCompactList}\small\item\em Destroys the node track with the given handle. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_aeacd8ac98ee8a82f4ee02a42ad5a20c1}{destroy\+Numeric\+Track}} (unsigned short handle)
\begin{DoxyCompactList}\small\item\em Destroys the numeric track with the given handle. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a9b73daea219e50025394ec4939f612cd}{destroy\+Vertex\+Track}} (unsigned short handle)
\begin{DoxyCompactList}\small\item\em Destroys the Vertex track with the given handle. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_animation_a5a2b288d7370b8fecc76e55a506bb47c}{get\+Base\+Key\+Frame\+Animation\+Name}} () const
\begin{DoxyCompactList}\small\item\em If a base keyframe is being used, the \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}} that provides that keyframe. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_animation_af4104403705a98439769af4294216d81}{get\+Base\+Key\+Frame\+Time}} () const
\begin{DoxyCompactList}\small\item\em If a base keyframe is being used, the time of that keyframe. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_container}{Animation\+Container}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_ae5edd991dc35ae17e1a2abbe85608154}{get\+Container}} ()
\begin{DoxyCompactList}\small\item\em Retrieve the container of this animation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} \mbox{\hyperlink{class_ogre_1_1_animation_ac124ec3106751cbcad82425b63d9079f}{get\+Interpolation\+Mode}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the current interpolation mode of this animation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_animation_a43139d61106b3c03784102b28bed2f6f}{get\+Length}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the total length of the animation. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_animation_a4c58858db2953d80b46ba2d9524a7780}{get\+Name}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of this animation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_a64c4a8794813cbb2e6a6c5ce72c92777}{get\+Node\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Gets a node track by it\textquotesingle{}s handle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}{Node\+Track\+Iterator}} \mbox{\hyperlink{class_ogre_1_1_animation_a19dd6c2a14bbdbe3c2f4b82e315edf92}{get\+Node\+Track\+Iterator}} (void) const
\begin{DoxyCompactList}\small\item\em Get non-\/updateable iterator over node tracks. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_ab2994c5136fab55deadfd85cc1cc885a}{get\+Numeric\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Gets a numeric track by it\textquotesingle{}s handle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}{Numeric\+Track\+Iterator}} \mbox{\hyperlink{class_ogre_1_1_animation_a5455ea1f3c423492a6df36470aa705e0}{get\+Numeric\+Track\+Iterator}} (void) const
\begin{DoxyCompactList}\small\item\em Get non-\/updateable iterator over node tracks. \end{DoxyCompactList}\item 
unsigned short \mbox{\hyperlink{class_ogre_1_1_animation_a8b6ec2b9f63b32a7ef5ee3016d3c6cfb}{get\+Num\+Node\+Tracks}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the number of \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} objects contained in this animation. \end{DoxyCompactList}\item 
unsigned short \mbox{\hyperlink{class_ogre_1_1_animation_aef3b9319f0d9a9b8cd63fbda4a0e14f8}{get\+Num\+Numeric\+Tracks}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the number of \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} objects contained in this animation. \end{DoxyCompactList}\item 
unsigned short \mbox{\hyperlink{class_ogre_1_1_animation_a5f47f41f0d33055662f02807b4ca3f2b}{get\+Num\+Vertex\+Tracks}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the number of \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} objects contained in this animation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} \mbox{\hyperlink{class_ogre_1_1_animation_ac72975a8fda68231ea4bdacce89f4090}{get\+Rotation\+Interpolation\+Mode}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the current rotation interpolation mode of this animation. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_animation_a12a10639e365d4946916aebf6528dd16}{get\+Use\+Base\+Key\+Frame}} () const
\begin{DoxyCompactList}\small\item\em Whether a base keyframe is being used for this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_animation_add1271b3dd34e70f610b38ac0df9e2a4}{get\+Vertex\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Gets a Vertex track by it\textquotesingle{}s handle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}{Vertex\+Track\+Iterator}} \mbox{\hyperlink{class_ogre_1_1_animation_abcc6f8c35899eb88cf32fa4cb4e64930}{get\+Vertex\+Track\+Iterator}} (void) const
\begin{DoxyCompactList}\small\item\em Get non-\/updateable iterator over node tracks. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_animation_afa2e9a5bd0bb77a840e781d6016cf8e9}{has\+Node\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Does a track exist with the given handle? \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_animation_a07015a9657d6cd551675aa08e1c6cc37}{has\+Numeric\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Does a track exist with the given handle? \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_animation_a3046168d6cdf43041f4ef2c041e5fce9}{has\+Vertex\+Track}} (unsigned short handle) const
\begin{DoxyCompactList}\small\item\em Does a track exist with the given handle? \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a6c74bfa5a7755f2cc6fa5635f50afef6}{optimise}} (bool discard\+Identity\+Node\+Tracks=true)
\begin{DoxyCompactList}\small\item\em Optimise an animation by removing unnecessary tracks and keyframes. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_aac31e00a651ad27d019284f761309aaa}{set\+Interpolation\+Mode}} (\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} im)
\begin{DoxyCompactList}\small\item\em Tells the animation how to interpolate between keyframes. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_ad40a8420fdccba38d8e8d3d7f270c804}{set\+Length}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} len)
\begin{DoxyCompactList}\small\item\em Sets the length of the animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_afabcd2de47086fa2ee7a9b1425d2dfe2}{set\+Rotation\+Interpolation\+Mode}} (\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} im)
\begin{DoxyCompactList}\small\item\em Tells the animation how to interpolate rotations. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_animation_a22780aed1bf68e2cd67e6dd62ac5c287}{set\+Use\+Base\+Key\+Frame}} (bool use\+Base\+Key\+Frame, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} keyframe\+Time=0.\+0f, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&base\+Anim\+Name=\mbox{\hyperlink{group___general_gad842a4b416bd2f3245d2b44826a0aedc}{B\+L\+A\+N\+K\+S\+T\+R\+I\+NG}})
\begin{DoxyCompactList}\small\item\em Sets a base keyframe which for the skeletal / pose keyframes in this animation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} \mbox{\hyperlink{class_ogre_1_1_animation_a1bd3c85600ecce978cc15ab36ddf9a43}{get\+Default\+Interpolation\+Mode}} (void)
\begin{DoxyCompactList}\small\item\em Gets the default interpolation mode for all animations. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} \mbox{\hyperlink{class_ogre_1_1_animation_a67546bf051fd0135c79842d56682ec4a}{get\+Default\+Rotation\+Interpolation\+Mode}} (void)
\begin{DoxyCompactList}\small\item\em Gets the default rotation interpolation mode for all animations. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{class_ogre_1_1_animation_a578b8c96c94980f27a73315cc24ddba7}{set\+Default\+Interpolation\+Mode}} (\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} im)
\begin{DoxyCompactList}\small\item\em Sets the default animation interpolation mode. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{class_ogre_1_1_animation_aa619948ea4bd84a5041e2f70036f6f98}{set\+Default\+Rotation\+Interpolation\+Mode}} (\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} im)
\begin{DoxyCompactList}\small\item\em Sets the default rotation interpolation mode. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
An animation sequence. 

\begin{DoxyRemark}{Remarks}
This class defines the interface for a sequence of animation, whether that be animation of a mesh, a path along a spline, or possibly more than one type of animation in one. An animation is made up of many \textquotesingle{}tracks\textquotesingle{}, which are the more specific types of animation. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
You should not create these animations directly. They will be created via a parent object which owns the animation, e.\+g. \mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}}. 
\end{DoxyParagraph}


\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}\label{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}} 
\index{Ogre::Animation@{Ogre::Animation}!NodeTrackList@{NodeTrackList}}
\index{NodeTrackList@{NodeTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{NodeTrackList}{NodeTrackList}}
{\footnotesize\ttfamily typedef std\+::map$<$unsigned short, \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}}$\ast$$>$ \mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Ogre\+::\+Animation\+::\+Node\+Track\+List}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}\label{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}} 
\index{Ogre::Animation@{Ogre::Animation}!NodeTrackIterator@{NodeTrackIterator}}
\index{NodeTrackIterator@{NodeTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{NodeTrackIterator}{NodeTrackIterator}}
{\footnotesize\ttfamily typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$\mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Node\+Track\+List}}$>$ \mbox{\hyperlink{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}{Ogre\+::\+Animation\+::\+Node\+Track\+Iterator}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}\label{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}} 
\index{Ogre::Animation@{Ogre::Animation}!NumericTrackList@{NumericTrackList}}
\index{NumericTrackList@{NumericTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{NumericTrackList}{NumericTrackList}}
{\footnotesize\ttfamily typedef std\+::map$<$unsigned short, \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}}$\ast$$>$ \mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Ogre\+::\+Animation\+::\+Numeric\+Track\+List}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}\label{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}} 
\index{Ogre::Animation@{Ogre::Animation}!NumericTrackIterator@{NumericTrackIterator}}
\index{NumericTrackIterator@{NumericTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{NumericTrackIterator}{NumericTrackIterator}}
{\footnotesize\ttfamily typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$\mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Numeric\+Track\+List}}$>$ \mbox{\hyperlink{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}{Ogre\+::\+Animation\+::\+Numeric\+Track\+Iterator}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}\label{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}} 
\index{Ogre::Animation@{Ogre::Animation}!VertexTrackList@{VertexTrackList}}
\index{VertexTrackList@{VertexTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{VertexTrackList}{VertexTrackList}}
{\footnotesize\ttfamily typedef std\+::map$<$unsigned short, \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}}$\ast$$>$ \mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Ogre\+::\+Animation\+::\+Vertex\+Track\+List}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}\label{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}} 
\index{Ogre::Animation@{Ogre::Animation}!VertexTrackIterator@{VertexTrackIterator}}
\index{VertexTrackIterator@{VertexTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{VertexTrackIterator}{VertexTrackIterator}}
{\footnotesize\ttfamily typedef \mbox{\hyperlink{class_ogre_1_1_const_map_iterator}{Const\+Map\+Iterator}}$<$\mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Vertex\+Track\+List}}$>$ \mbox{\hyperlink{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}{Ogre\+::\+Animation\+::\+Vertex\+Track\+Iterator}}}

\mbox{\Hypertarget{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}\label{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}} 
\index{Ogre::Animation@{Ogre::Animation}!TrackHandleList@{TrackHandleList}}
\index{TrackHandleList@{TrackHandleList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{TrackHandleList}{TrackHandleList}}
{\footnotesize\ttfamily typedef std\+::set$<$\mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}}$>$ \mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Ogre\+::\+Animation\+::\+Track\+Handle\+List}}}



A list of track handles. 



\doxysubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}\label{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}} 
\index{Ogre::Animation@{Ogre::Animation}!InterpolationMode@{InterpolationMode}}
\index{InterpolationMode@{InterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{InterpolationMode}{InterpolationMode}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Ogre\+::\+Animation\+::\+Interpolation\+Mode}}}



The types of animation interpolation available. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{IM\_LINEAR@{IM\_LINEAR}!Ogre::Animation@{Ogre::Animation}}\index{Ogre::Animation@{Ogre::Animation}!IM\_LINEAR@{IM\_LINEAR}}}\mbox{\Hypertarget{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcda262ee3e33fe08932773f377f2595b142}\label{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcda262ee3e33fe08932773f377f2595b142}} 
I\+M\+\_\+\+L\+I\+N\+E\+AR&Values are interpolated along straight lines. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{IM\_SPLINE@{IM\_SPLINE}!Ogre::Animation@{Ogre::Animation}}\index{Ogre::Animation@{Ogre::Animation}!IM\_SPLINE@{IM\_SPLINE}}}\mbox{\Hypertarget{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcdaed6662637d5b6a2f79cdf5b60318fc9a}\label{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcdaed6662637d5b6a2f79cdf5b60318fc9a}} 
I\+M\+\_\+\+S\+P\+L\+I\+NE&Values are interpolated along a spline, resulting in smoother changes in direction. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}\label{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}} 
\index{Ogre::Animation@{Ogre::Animation}!RotationInterpolationMode@{RotationInterpolationMode}}
\index{RotationInterpolationMode@{RotationInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{RotationInterpolationMode}{RotationInterpolationMode}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Ogre\+::\+Animation\+::\+Rotation\+Interpolation\+Mode}}}



The types of rotational interpolation available. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{RIM\_LINEAR@{RIM\_LINEAR}!Ogre::Animation@{Ogre::Animation}}\index{Ogre::Animation@{Ogre::Animation}!RIM\_LINEAR@{RIM\_LINEAR}}}\mbox{\Hypertarget{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32a9b235462ed2b49ff928bfc037775e18f}\label{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32a9b235462ed2b49ff928bfc037775e18f}} 
R\+I\+M\+\_\+\+L\+I\+N\+E\+AR&Values are interpolated linearly. This is faster but does not necessarily give a completely accurate result. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RIM\_SPHERICAL@{RIM\_SPHERICAL}!Ogre::Animation@{Ogre::Animation}}\index{Ogre::Animation@{Ogre::Animation}!RIM\_SPHERICAL@{RIM\_SPHERICAL}}}\mbox{\Hypertarget{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32ae2332380356ba1b4aa4b30eef722ce40}\label{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32ae2332380356ba1b4aa4b30eef722ce40}} 
R\+I\+M\+\_\+\+S\+P\+H\+E\+R\+I\+C\+AL&Values are interpolated spherically. This is more accurate but has a higher cost. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_animation_aeece2a3468761504266fc13b1d45b9e8}\label{class_ogre_1_1_animation_aeece2a3468761504266fc13b1d45b9e8}} 
\index{Ogre::Animation@{Ogre::Animation}!Animation@{Animation}}
\index{Animation@{Animation}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{Animation()}{Animation()}}
{\footnotesize\ttfamily Ogre\+::\+Animation\+::\+Animation (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{name,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{length }\end{DoxyParamCaption})}



You should not use this constructor directly, use the parent object such as \mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} instead. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the animation, should be unique within it\textquotesingle{}s parent (e.\+g. \mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}}) \\
\hline
{\em length} & The length of the animation in seconds. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_aaffbd7f99b0d72bb55c2ac42ad671acf}\label{class_ogre_1_1_animation_aaffbd7f99b0d72bb55c2ac42ad671acf}} 
\index{Ogre::Animation@{Ogre::Animation}!````~Animation@{$\sim$Animation}}
\index{````~Animation@{$\sim$Animation}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{$\sim$Animation()}{~Animation()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Animation\+::$\sim$\+Animation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_animation_a4c58858db2953d80b46ba2d9524a7780}\label{class_ogre_1_1_animation_a4c58858db2953d80b46ba2d9524a7780}} 
\index{Ogre::Animation@{Ogre::Animation}!getName@{getName}}
\index{getName@{getName}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Animation\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the name of this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a43139d61106b3c03784102b28bed2f6f}\label{class_ogre_1_1_animation_a43139d61106b3c03784102b28bed2f6f}} 
\index{Ogre::Animation@{Ogre::Animation}!getLength@{getLength}}
\index{getLength@{getLength}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getLength()}{getLength()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Animation\+::get\+Length (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the total length of the animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_ad40a8420fdccba38d8e8d3d7f270c804}\label{class_ogre_1_1_animation_ad40a8420fdccba38d8e8d3d7f270c804}} 
\index{Ogre::Animation@{Ogre::Animation}!setLength@{setLength}}
\index{setLength@{setLength}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setLength()}{setLength()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::set\+Length (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{len }\end{DoxyParamCaption})}



Sets the length of the animation. 

\begin{DoxyNote}{Note}
Changing the length of an animation may invalidate existing \mbox{\hyperlink{class_ogre_1_1_animation_state}{Animation\+State}} instances which will need to be recreated. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_animation_a30787705fcfd9116eb228e6d6c55aa1c}\label{class_ogre_1_1_animation_a30787705fcfd9116eb228e6d6c55aa1c}} 
\index{Ogre::Animation@{Ogre::Animation}!createNodeTrack@{createNodeTrack}}
\index{createNodeTrack@{createNodeTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createNodeTrack()}{createNodeTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Node\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption})}



Creates a \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} for animating a \mbox{\hyperlink{class_ogre_1_1_node}{Node}}. 


\begin{DoxyParams}{Parameters}
{\em handle} & Handle to give the track, used for accessing the track later. Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a2a7c93bf69ae8c39cd5008a4ea0914bb}\label{class_ogre_1_1_animation_a2a7c93bf69ae8c39cd5008a4ea0914bb}} 
\index{Ogre::Animation@{Ogre::Animation}!createNumericTrack@{createNumericTrack}}
\index{createNumericTrack@{createNumericTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createNumericTrack()}{createNumericTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Numeric\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption})}



Creates a \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} for animating any numeric value. 


\begin{DoxyParams}{Parameters}
{\em handle} & Handle to give the track, used for accessing the track later. Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_aa57ef3d4c1957a1514baaaeb05a7a07c}\label{class_ogre_1_1_animation_aa57ef3d4c1957a1514baaaeb05a7a07c}} 
\index{Ogre::Animation@{Ogre::Animation}!createVertexTrack@{createVertexTrack}}
\index{createVertexTrack@{createVertexTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createVertexTrack()}{createVertexTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Vertex\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle,  }\item[{\mbox{\hyperlink{group___animation_ga9046e6e0d12c46c57a9056987e9d158e}{Vertex\+Animation\+Type}}}]{anim\+Type }\end{DoxyParamCaption})}



Creates a \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} for animating vertex position data. 


\begin{DoxyParams}{Parameters}
{\em handle} & Handle to give the track, used for accessing the track later. Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}, and is used to identify the target. For example when applied to a \mbox{\hyperlink{class_ogre_1_1_mesh}{Mesh}}, the handle must reference the index of the geometry being modified; 0 for the shared geometry, and 1+ for \mbox{\hyperlink{class_ogre_1_1_sub_mesh}{Sub\+Mesh}} geometry with the same index-\/1. \\
\hline
{\em anim\+Type} & Either morph or pose animation, \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_aca1a073f6b8cd7acfd9fae1c70efcc67}\label{class_ogre_1_1_animation_aca1a073f6b8cd7acfd9fae1c70efcc67}} 
\index{Ogre::Animation@{Ogre::Animation}!createNodeTrack@{createNodeTrack}}
\index{createNodeTrack@{createNodeTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createNodeTrack()}{createNodeTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Node\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle,  }\item[{\mbox{\hyperlink{class_ogre_1_1_node}{Node}} $\ast$}]{node }\end{DoxyParamCaption})}



Creates a new \mbox{\hyperlink{class_ogre_1_1_animation_track}{Animation\+Track}} automatically associated with a \mbox{\hyperlink{class_ogre_1_1_node}{Node}}. 

\begin{DoxyRemark}{Remarks}
This method creates a standard \mbox{\hyperlink{class_ogre_1_1_animation_track}{Animation\+Track}}, but also associates it with a target \mbox{\hyperlink{class_ogre_1_1_node}{Node}} which will receive all keyframe effects. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em handle} & Numeric handle to give the track, used for accessing the track later. Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \\
\hline
{\em node} & A pointer to the \mbox{\hyperlink{class_ogre_1_1_node}{Node}} object which will be affected by this track \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a617ebd1829597aab16a1487bb5e7db47}\label{class_ogre_1_1_animation_a617ebd1829597aab16a1487bb5e7db47}} 
\index{Ogre::Animation@{Ogre::Animation}!createNumericTrack@{createNumericTrack}}
\index{createNumericTrack@{createNumericTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createNumericTrack()}{createNumericTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Numeric\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle,  }\item[{const \mbox{\hyperlink{namespace_ogre_a5e0882c3b9f7ca32a795f98cf034e428}{Animable\+Value\+Ptr}} \&}]{anim }\end{DoxyParamCaption})}



Creates a \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} and associates it with an animable. 


\begin{DoxyParams}{Parameters}
{\em handle} & Handle to give the track, used for accessing the track later. \\
\hline
{\em anim} & Animable object link Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a2e0d15b479986999a34c85c11368b7d1}\label{class_ogre_1_1_animation_a2e0d15b479986999a34c85c11368b7d1}} 
\index{Ogre::Animation@{Ogre::Animation}!createVertexTrack@{createVertexTrack}}
\index{createVertexTrack@{createVertexTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{createVertexTrack()}{createVertexTrack()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::create\+Vertex\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle,  }\item[{\mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}} $\ast$}]{data,  }\item[{\mbox{\hyperlink{group___animation_ga9046e6e0d12c46c57a9056987e9d158e}{Vertex\+Animation\+Type}}}]{anim\+Type }\end{DoxyParamCaption})}



Creates a \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} and associates it with \mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}}. 


\begin{DoxyParams}{Parameters}
{\em handle} & Handle to give the track, used for accessing the track later. \\
\hline
{\em data} & \mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}} object link \\
\hline
{\em anim\+Type} & The animation type Must be unique within this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a8b6ec2b9f63b32a7ef5ee3016d3c6cfb}\label{class_ogre_1_1_animation_a8b6ec2b9f63b32a7ef5ee3016d3c6cfb}} 
\index{Ogre::Animation@{Ogre::Animation}!getNumNodeTracks@{getNumNodeTracks}}
\index{getNumNodeTracks@{getNumNodeTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNumNodeTracks()}{getNumNodeTracks()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Animation\+::get\+Num\+Node\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the number of \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}} objects contained in this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a64c4a8794813cbb2e6a6c5ce72c92777}\label{class_ogre_1_1_animation_a64c4a8794813cbb2e6a6c5ce72c92777}} 
\index{Ogre::Animation@{Ogre::Animation}!getNodeTrack@{getNodeTrack}}
\index{getNodeTrack@{getNodeTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNodeTrack()}{getNodeTrack()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_node_animation_track}{Node\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::get\+Node\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Gets a node track by it\textquotesingle{}s handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_afa2e9a5bd0bb77a840e781d6016cf8e9}\label{class_ogre_1_1_animation_afa2e9a5bd0bb77a840e781d6016cf8e9}} 
\index{Ogre::Animation@{Ogre::Animation}!hasNodeTrack@{hasNodeTrack}}
\index{hasNodeTrack@{hasNodeTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{hasNodeTrack()}{hasNodeTrack()}}
{\footnotesize\ttfamily bool Ogre\+::\+Animation\+::has\+Node\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Does a track exist with the given handle? 

\mbox{\Hypertarget{class_ogre_1_1_animation_aef3b9319f0d9a9b8cd63fbda4a0e14f8}\label{class_ogre_1_1_animation_aef3b9319f0d9a9b8cd63fbda4a0e14f8}} 
\index{Ogre::Animation@{Ogre::Animation}!getNumNumericTracks@{getNumNumericTracks}}
\index{getNumNumericTracks@{getNumNumericTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNumNumericTracks()}{getNumNumericTracks()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Animation\+::get\+Num\+Numeric\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the number of \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}} objects contained in this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_ab2994c5136fab55deadfd85cc1cc885a}\label{class_ogre_1_1_animation_ab2994c5136fab55deadfd85cc1cc885a}} 
\index{Ogre::Animation@{Ogre::Animation}!getNumericTrack@{getNumericTrack}}
\index{getNumericTrack@{getNumericTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNumericTrack()}{getNumericTrack()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_numeric_animation_track}{Numeric\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::get\+Numeric\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Gets a numeric track by it\textquotesingle{}s handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a07015a9657d6cd551675aa08e1c6cc37}\label{class_ogre_1_1_animation_a07015a9657d6cd551675aa08e1c6cc37}} 
\index{Ogre::Animation@{Ogre::Animation}!hasNumericTrack@{hasNumericTrack}}
\index{hasNumericTrack@{hasNumericTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{hasNumericTrack()}{hasNumericTrack()}}
{\footnotesize\ttfamily bool Ogre\+::\+Animation\+::has\+Numeric\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Does a track exist with the given handle? 

\mbox{\Hypertarget{class_ogre_1_1_animation_a5f47f41f0d33055662f02807b4ca3f2b}\label{class_ogre_1_1_animation_a5f47f41f0d33055662f02807b4ca3f2b}} 
\index{Ogre::Animation@{Ogre::Animation}!getNumVertexTracks@{getNumVertexTracks}}
\index{getNumVertexTracks@{getNumVertexTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNumVertexTracks()}{getNumVertexTracks()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Animation\+::get\+Num\+Vertex\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the number of \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}} objects contained in this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_add1271b3dd34e70f610b38ac0df9e2a4}\label{class_ogre_1_1_animation_add1271b3dd34e70f610b38ac0df9e2a4}} 
\index{Ogre::Animation@{Ogre::Animation}!getVertexTrack@{getVertexTrack}}
\index{getVertexTrack@{getVertexTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getVertexTrack()}{getVertexTrack()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_vertex_animation_track}{Vertex\+Animation\+Track}}$\ast$ Ogre\+::\+Animation\+::get\+Vertex\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Gets a Vertex track by it\textquotesingle{}s handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a3046168d6cdf43041f4ef2c041e5fce9}\label{class_ogre_1_1_animation_a3046168d6cdf43041f4ef2c041e5fce9}} 
\index{Ogre::Animation@{Ogre::Animation}!hasVertexTrack@{hasVertexTrack}}
\index{hasVertexTrack@{hasVertexTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{hasVertexTrack()}{hasVertexTrack()}}
{\footnotesize\ttfamily bool Ogre\+::\+Animation\+::has\+Vertex\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption}) const}



Does a track exist with the given handle? 

\mbox{\Hypertarget{class_ogre_1_1_animation_a8af56d49ff39965b5544f4714f60921e}\label{class_ogre_1_1_animation_a8af56d49ff39965b5544f4714f60921e}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyNodeTrack@{destroyNodeTrack}}
\index{destroyNodeTrack@{destroyNodeTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyNodeTrack()}{destroyNodeTrack()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+Node\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption})}



Destroys the node track with the given handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_aeacd8ac98ee8a82f4ee02a42ad5a20c1}\label{class_ogre_1_1_animation_aeacd8ac98ee8a82f4ee02a42ad5a20c1}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyNumericTrack@{destroyNumericTrack}}
\index{destroyNumericTrack@{destroyNumericTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyNumericTrack()}{destroyNumericTrack()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+Numeric\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption})}



Destroys the numeric track with the given handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a9b73daea219e50025394ec4939f612cd}\label{class_ogre_1_1_animation_a9b73daea219e50025394ec4939f612cd}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyVertexTrack@{destroyVertexTrack}}
\index{destroyVertexTrack@{destroyVertexTrack}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyVertexTrack()}{destroyVertexTrack()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+Vertex\+Track (\begin{DoxyParamCaption}\item[{unsigned short}]{handle }\end{DoxyParamCaption})}



Destroys the Vertex track with the given handle. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a38a092ec9280c0651b9af9c5a0f91d82}\label{class_ogre_1_1_animation_a38a092ec9280c0651b9af9c5a0f91d82}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyAllTracks@{destroyAllTracks}}
\index{destroyAllTracks@{destroyAllTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyAllTracks()}{destroyAllTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+All\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Removes and destroys all tracks making up this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a571b7ec6d6894ee7352f991d4675fcec}\label{class_ogre_1_1_animation_a571b7ec6d6894ee7352f991d4675fcec}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyAllNodeTracks@{destroyAllNodeTracks}}
\index{destroyAllNodeTracks@{destroyAllNodeTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyAllNodeTracks()}{destroyAllNodeTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+All\+Node\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Removes and destroys all tracks making up this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_ad02ddb9aa24b16831d546d35ade27514}\label{class_ogre_1_1_animation_ad02ddb9aa24b16831d546d35ade27514}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyAllNumericTracks@{destroyAllNumericTracks}}
\index{destroyAllNumericTracks@{destroyAllNumericTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyAllNumericTracks()}{destroyAllNumericTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+All\+Numeric\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Removes and destroys all tracks making up this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a9514493756471b0ab5d8cc473e291141}\label{class_ogre_1_1_animation_a9514493756471b0ab5d8cc473e291141}} 
\index{Ogre::Animation@{Ogre::Animation}!destroyAllVertexTracks@{destroyAllVertexTracks}}
\index{destroyAllVertexTracks@{destroyAllVertexTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{destroyAllVertexTracks()}{destroyAllVertexTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::destroy\+All\+Vertex\+Tracks (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Removes and destroys all tracks making up this animation. 

\mbox{\Hypertarget{class_ogre_1_1_animation_aa79ff8a4ddeb63225e6d68f6a16e9a24}\label{class_ogre_1_1_animation_aa79ff8a4ddeb63225e6d68f6a16e9a24}} 
\index{Ogre::Animation@{Ogre::Animation}!apply@{apply}}
\index{apply@{apply}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{apply()}{apply()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight = {\ttfamily 1.0},  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{scale = {\ttfamily 1.0f} }\end{DoxyParamCaption})}



Applies an animation given a specific time point and weight. 

\begin{DoxyRemark}{Remarks}
Where you have associated animation tracks with objects, you can easily apply an animation to those objects by calling this method. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
{\em scale} & The scale to apply to translations and scalings, useful for adapting an animation to a different size target. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a18392d47fb421eb3131e2c6bc79e4fe1}\label{class_ogre_1_1_animation_a18392d47fb421eb3131e2c6bc79e4fe1}} 
\index{Ogre::Animation@{Ogre::Animation}!applyToNode@{applyToNode}}
\index{applyToNode@{applyToNode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{applyToNode()}{applyToNode()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply\+To\+Node (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_node}{Node}} $\ast$}]{node,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight = {\ttfamily 1.0},  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{scale = {\ttfamily 1.0f} }\end{DoxyParamCaption})}



Applies all node tracks given a specific time point and weight to the specified node. 

\begin{DoxyRemark}{Remarks}
It does not consider the actual node tracks are attached to. As such, it resembles the apply method for a given skeleton (see below). 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em node} & \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
{\em scale} & The scale to apply to translations and scalings, useful for adapting an animation to a different size target. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a5f874e1f76e045184f04f44ce1c94927}\label{class_ogre_1_1_animation_a5f874e1f76e045184f04f44ce1c94927}} 
\index{Ogre::Animation@{Ogre::Animation}!apply@{apply}}
\index{apply@{apply}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{apply()}{apply()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} $\ast$}]{skeleton,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight = {\ttfamily 1.0},  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{scale = {\ttfamily 1.0f} }\end{DoxyParamCaption})}



Applies all node tracks given a specific time point and weight to a given skeleton. 

\begin{DoxyRemark}{Remarks}
Where you have associated animation tracks with \mbox{\hyperlink{class_ogre_1_1_node}{Node}} objects, you can easily apply an animation to those nodes by calling this method. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em skeleton} & \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
{\em scale} & The scale to apply to translations and scalings, useful for adapting an animation to a different size target. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_af200502c3f6eeaa8f1a8da39e8ada5d9}\label{class_ogre_1_1_animation_af200502c3f6eeaa8f1a8da39e8ada5d9}} 
\index{Ogre::Animation@{Ogre::Animation}!apply@{apply}}
\index{apply@{apply}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{apply()}{apply()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_skeleton}{Skeleton}} $\ast$}]{skeleton,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{float}]{weight,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_animation_state_a4acdb34d7886a9ba6e9d7fd977be468c}{Animation\+State\+::\+Bone\+Blend\+Mask}} $\ast$}]{blend\+Mask,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{scale }\end{DoxyParamCaption})}



Applies all node tracks given a specific time point and weight to a given skeleton. 

\begin{DoxyRemark}{Remarks}
Where you have associated animation tracks with \mbox{\hyperlink{class_ogre_1_1_node}{Node}} objects, you can easily apply an animation to those nodes by calling this method. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em skeleton} & \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
{\em blend\+Mask} & The influence array defining additional per bone weights. These will be modulated with the weight factor. \\
\hline
{\em scale} & The scale to apply to translations and scalings, useful for adapting an animation to a different size target. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a452a33575f1b10818dc99f260fb799a8}\label{class_ogre_1_1_animation_a452a33575f1b10818dc99f260fb799a8}} 
\index{Ogre::Animation@{Ogre::Animation}!apply@{apply}}
\index{apply@{apply}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{apply()}{apply()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_entity}{Entity}} $\ast$}]{entity,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight,  }\item[{bool}]{software,  }\item[{bool}]{hardware }\end{DoxyParamCaption})}



Applies all vertex tracks given a specific time point and weight to a given entity. 


\begin{DoxyParams}{Parameters}
{\em entity} & The \mbox{\hyperlink{class_ogre_1_1_entity}{Entity}} to which this animation should be applied \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The weight at which the animation should be applied (only affects pose animation) \\
\hline
{\em software} & Whether to populate the software morph vertex data \\
\hline
{\em hardware} & Whether to populate the hardware morph vertex data \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_aba50b3776ef9ff01f182acfaf9e1cf02}\label{class_ogre_1_1_animation_aba50b3776ef9ff01f182acfaf9e1cf02}} 
\index{Ogre::Animation@{Ogre::Animation}!applyToAnimable@{applyToAnimable}}
\index{applyToAnimable@{applyToAnimable}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{applyToAnimable()}{applyToAnimable()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply\+To\+Animable (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_a5e0882c3b9f7ca32a795f98cf034e428}{Animable\+Value\+Ptr}} \&}]{anim,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight = {\ttfamily 1.0},  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{scale = {\ttfamily 1.0f} }\end{DoxyParamCaption})}



Applies all numeric tracks given a specific time point and weight to the specified animable value. 

\begin{DoxyRemark}{Remarks}
It does not applies to actual attached animable values but rather uses all tracks for a single animable value. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em anim} & \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
{\em scale} & The scale to apply to translations and scalings, useful for adapting an animation to a different size target. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a4221e6f98120b985e97ab59f62241bfc}\label{class_ogre_1_1_animation_a4221e6f98120b985e97ab59f62241bfc}} 
\index{Ogre::Animation@{Ogre::Animation}!applyToVertexData@{applyToVertexData}}
\index{applyToVertexData@{applyToVertexData}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{applyToVertexData()}{applyToVertexData()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::apply\+To\+Vertex\+Data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_vertex_data}{Vertex\+Data}} $\ast$}]{data,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{weight = {\ttfamily 1.0} }\end{DoxyParamCaption})}



Applies all vertex tracks given a specific time point and weight to the specified vertex data. 

\begin{DoxyRemark}{Remarks}
It does not apply to the actual attached vertex data but rather uses all tracks for a given vertex data. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em data} & \\
\hline
{\em time\+Pos} & The time position in the animation to apply. \\
\hline
{\em weight} & The influence to give to this track, 1.\+0 for full influence, less to blend with other animations. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_aac31e00a651ad27d019284f761309aaa}\label{class_ogre_1_1_animation_aac31e00a651ad27d019284f761309aaa}} 
\index{Ogre::Animation@{Ogre::Animation}!setInterpolationMode@{setInterpolationMode}}
\index{setInterpolationMode@{setInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setInterpolationMode()}{setInterpolationMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::set\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}}}]{im }\end{DoxyParamCaption})}



Tells the animation how to interpolate between keyframes. 

\begin{DoxyRemark}{Remarks}
By default, animations normally interpolate linearly between keyframes. This is fast, but when animations include quick changes in direction it can look a little unnatural because directions change instantly at keyframes. An alternative is to tell the animation to interpolate along a spline, which is more expensive in terms of calculation time, but looks smoother because major changes in direction are distributed around the keyframes rather than just at the keyframe. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
You can also change the default animation behaviour by calling \mbox{\hyperlink{class_ogre_1_1_animation_a578b8c96c94980f27a73315cc24ddba7}{Animation\+::set\+Default\+Interpolation\+Mode}}. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_animation_ac124ec3106751cbcad82425b63d9079f}\label{class_ogre_1_1_animation_ac124ec3106751cbcad82425b63d9079f}} 
\index{Ogre::Animation@{Ogre::Animation}!getInterpolationMode@{getInterpolationMode}}
\index{getInterpolationMode@{getInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getInterpolationMode()}{getInterpolationMode()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} Ogre\+::\+Animation\+::get\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the current interpolation mode of this animation. 

\begin{DoxyRemark}{Remarks}
See set\+Interpolation\+Mode for more info. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_animation_afabcd2de47086fa2ee7a9b1425d2dfe2}\label{class_ogre_1_1_animation_afabcd2de47086fa2ee7a9b1425d2dfe2}} 
\index{Ogre::Animation@{Ogre::Animation}!setRotationInterpolationMode@{setRotationInterpolationMode}}
\index{setRotationInterpolationMode@{setRotationInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setRotationInterpolationMode()}{setRotationInterpolationMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::set\+Rotation\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}}}]{im }\end{DoxyParamCaption})}



Tells the animation how to interpolate rotations. 

\begin{DoxyRemark}{Remarks}
By default, animations interpolate linearly between rotations. This is fast but not necessarily completely accurate. If you want more accurate interpolation, use spherical interpolation, but be aware that it will incur a higher cost. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
You can also change the default rotation behaviour by calling \mbox{\hyperlink{class_ogre_1_1_animation_aa619948ea4bd84a5041e2f70036f6f98}{Animation\+::set\+Default\+Rotation\+Interpolation\+Mode}}. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_animation_ac72975a8fda68231ea4bdacce89f4090}\label{class_ogre_1_1_animation_ac72975a8fda68231ea4bdacce89f4090}} 
\index{Ogre::Animation@{Ogre::Animation}!getRotationInterpolationMode@{getRotationInterpolationMode}}
\index{getRotationInterpolationMode@{getRotationInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getRotationInterpolationMode()}{getRotationInterpolationMode()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} Ogre\+::\+Animation\+::get\+Rotation\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the current rotation interpolation mode of this animation. 

\begin{DoxyRemark}{Remarks}
See set\+Rotation\+Interpolation\+Mode for more info. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_animation_a578b8c96c94980f27a73315cc24ddba7}\label{class_ogre_1_1_animation_a578b8c96c94980f27a73315cc24ddba7}} 
\index{Ogre::Animation@{Ogre::Animation}!setDefaultInterpolationMode@{setDefaultInterpolationMode}}
\index{setDefaultInterpolationMode@{setDefaultInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setDefaultInterpolationMode()}{setDefaultInterpolationMode()}}
{\footnotesize\ttfamily static void Ogre\+::\+Animation\+::set\+Default\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}}}]{im }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Sets the default animation interpolation mode. 

\begin{DoxyRemark}{Remarks}
Every animation created after this option is set will have the new interpolation mode specified. You can also change the mode per animation by calling the set\+Interpolation\+Mode method on the instance in question. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_animation_a1bd3c85600ecce978cc15ab36ddf9a43}\label{class_ogre_1_1_animation_a1bd3c85600ecce978cc15ab36ddf9a43}} 
\index{Ogre::Animation@{Ogre::Animation}!getDefaultInterpolationMode@{getDefaultInterpolationMode}}
\index{getDefaultInterpolationMode@{getDefaultInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getDefaultInterpolationMode()}{getDefaultInterpolationMode()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{class_ogre_1_1_animation_accd627249080f5a09332f55bed1d2dcd}{Interpolation\+Mode}} Ogre\+::\+Animation\+::get\+Default\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Gets the default interpolation mode for all animations. 

\mbox{\Hypertarget{class_ogre_1_1_animation_aa619948ea4bd84a5041e2f70036f6f98}\label{class_ogre_1_1_animation_aa619948ea4bd84a5041e2f70036f6f98}} 
\index{Ogre::Animation@{Ogre::Animation}!setDefaultRotationInterpolationMode@{setDefaultRotationInterpolationMode}}
\index{setDefaultRotationInterpolationMode@{setDefaultRotationInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setDefaultRotationInterpolationMode()}{setDefaultRotationInterpolationMode()}}
{\footnotesize\ttfamily static void Ogre\+::\+Animation\+::set\+Default\+Rotation\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}}}]{im }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Sets the default rotation interpolation mode. 

\begin{DoxyRemark}{Remarks}
Every animation created after this option is set will have the new interpolation mode specified. You can also change the mode per animation by calling the set\+Interpolation\+Mode method on the instance in question. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_animation_a67546bf051fd0135c79842d56682ec4a}\label{class_ogre_1_1_animation_a67546bf051fd0135c79842d56682ec4a}} 
\index{Ogre::Animation@{Ogre::Animation}!getDefaultRotationInterpolationMode@{getDefaultRotationInterpolationMode}}
\index{getDefaultRotationInterpolationMode@{getDefaultRotationInterpolationMode}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getDefaultRotationInterpolationMode()}{getDefaultRotationInterpolationMode()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{class_ogre_1_1_animation_afbc674fea08fd85e8ad73a10dc852c32}{Rotation\+Interpolation\+Mode}} Ogre\+::\+Animation\+::get\+Default\+Rotation\+Interpolation\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Gets the default rotation interpolation mode for all animations. 

\mbox{\Hypertarget{class_ogre_1_1_animation_ac8c738f599003e5b690a633fef62b47c}\label{class_ogre_1_1_animation_ac8c738f599003e5b690a633fef62b47c}} 
\index{Ogre::Animation@{Ogre::Animation}!\_getNodeTrackList@{\_getNodeTrackList}}
\index{\_getNodeTrackList@{\_getNodeTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_getNodeTrackList()}{\_getNodeTrackList()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{class_ogre_1_1_animation_a61e2c44b477c5a6e8b4f22a13d806201}{Node\+Track\+List}}\& Ogre\+::\+Animation\+::\+\_\+get\+Node\+Track\+List (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE node track list. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a19dd6c2a14bbdbe3c2f4b82e315edf92}\label{class_ogre_1_1_animation_a19dd6c2a14bbdbe3c2f4b82e315edf92}} 
\index{Ogre::Animation@{Ogre::Animation}!getNodeTrackIterator@{getNodeTrackIterator}}
\index{getNodeTrackIterator@{getNodeTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNodeTrackIterator()}{getNodeTrackIterator()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_a102623aa082648ea3fe2023ab30609b3}{Node\+Track\+Iterator}} Ogre\+::\+Animation\+::get\+Node\+Track\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get non-\/updateable iterator over node tracks. 

\mbox{\Hypertarget{class_ogre_1_1_animation_affe0e2b8b5da4fadb91aca318b7b956a}\label{class_ogre_1_1_animation_affe0e2b8b5da4fadb91aca318b7b956a}} 
\index{Ogre::Animation@{Ogre::Animation}!\_getNumericTrackList@{\_getNumericTrackList}}
\index{\_getNumericTrackList@{\_getNumericTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_getNumericTrackList()}{\_getNumericTrackList()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{class_ogre_1_1_animation_a837e2fcb95b1f8de248ff35a74257adb}{Numeric\+Track\+List}}\& Ogre\+::\+Animation\+::\+\_\+get\+Numeric\+Track\+List (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE numeric track list. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a5455ea1f3c423492a6df36470aa705e0}\label{class_ogre_1_1_animation_a5455ea1f3c423492a6df36470aa705e0}} 
\index{Ogre::Animation@{Ogre::Animation}!getNumericTrackIterator@{getNumericTrackIterator}}
\index{getNumericTrackIterator@{getNumericTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getNumericTrackIterator()}{getNumericTrackIterator()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_adc1167a609195ef97a04e3c6ea1dbe4f}{Numeric\+Track\+Iterator}} Ogre\+::\+Animation\+::get\+Numeric\+Track\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get non-\/updateable iterator over node tracks. 

\mbox{\Hypertarget{class_ogre_1_1_animation_aef2b7a15761fa745cf2a11fe953d5320}\label{class_ogre_1_1_animation_aef2b7a15761fa745cf2a11fe953d5320}} 
\index{Ogre::Animation@{Ogre::Animation}!\_getVertexTrackList@{\_getVertexTrackList}}
\index{\_getVertexTrackList@{\_getVertexTrackList}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_getVertexTrackList()}{\_getVertexTrackList()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{class_ogre_1_1_animation_adc4a5cb3ee2cbb80b4f0d2cd1a18ce2c}{Vertex\+Track\+List}}\& Ogre\+::\+Animation\+::\+\_\+get\+Vertex\+Track\+List (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Fast access to N\+O\+N-\/\+U\+P\+D\+A\+T\+E\+A\+B\+LE Vertex track list. 

\mbox{\Hypertarget{class_ogre_1_1_animation_abcc6f8c35899eb88cf32fa4cb4e64930}\label{class_ogre_1_1_animation_abcc6f8c35899eb88cf32fa4cb4e64930}} 
\index{Ogre::Animation@{Ogre::Animation}!getVertexTrackIterator@{getVertexTrackIterator}}
\index{getVertexTrackIterator@{getVertexTrackIterator}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getVertexTrackIterator()}{getVertexTrackIterator()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_a6cf2cea821bb2bc222097322810a8795}{Vertex\+Track\+Iterator}} Ogre\+::\+Animation\+::get\+Vertex\+Track\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get non-\/updateable iterator over node tracks. 



Referenced by Ogre\+::\+Lod0\+Stripifier\+::\+Strip\+Lod0\+Vertices().

\mbox{\Hypertarget{class_ogre_1_1_animation_a6c74bfa5a7755f2cc6fa5635f50afef6}\label{class_ogre_1_1_animation_a6c74bfa5a7755f2cc6fa5635f50afef6}} 
\index{Ogre::Animation@{Ogre::Animation}!optimise@{optimise}}
\index{optimise@{optimise}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{optimise()}{optimise()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::optimise (\begin{DoxyParamCaption}\item[{bool}]{discard\+Identity\+Node\+Tracks = {\ttfamily true} }\end{DoxyParamCaption})}



Optimise an animation by removing unnecessary tracks and keyframes. 

\begin{DoxyRemark}{Remarks}
When you export an animation, it is possible that certain tracks have been keyframed but actually don\textquotesingle{}t include anything useful -\/ the keyframes include no transformation. These tracks can be completely eliminated from the animation and thus speed up the animation. In addition, if several keyframes in a row have the same value, then they are just adding overhead and can be removed. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Since track-\/less and identity track has difference behavior for accumulate animation blending if corresponding track presenting at other animation that is non-\/identity, and in normally this method didn\textquotesingle{}t known about the situation of other animation, it can\textquotesingle{}t deciding whether or not discards identity tracks. So there have a parameter allow you choose what you want, in case you aren\textquotesingle{}t sure how to do that, you should use \mbox{\hyperlink{class_ogre_1_1_skeleton_a542c24dc374d0ff8ba4ecdda99b5da06}{Skeleton\+::optimise\+All\+Animations}} instead. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em discard\+Identity\+Node\+Tracks} & If true, discard identity node tracks. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a69017d271ad8b0f7f35905f6212a17eb}\label{class_ogre_1_1_animation_a69017d271ad8b0f7f35905f6212a17eb}} 
\index{Ogre::Animation@{Ogre::Animation}!\_collectIdentityNodeTracks@{\_collectIdentityNodeTracks}}
\index{\_collectIdentityNodeTracks@{\_collectIdentityNodeTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_collectIdentityNodeTracks()}{\_collectIdentityNodeTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::\+\_\+collect\+Identity\+Node\+Tracks (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Track\+Handle\+List}} \&}]{tracks }\end{DoxyParamCaption}) const}



Internal method for collecting identity node tracks. 

\begin{DoxyRemark}{Remarks}
This method remove non-\/identity node tracks form the track handle list. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em tracks} & A list of track handle of non-\/identity node tracks, where this method will remove non-\/identity node track handles. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a0efa76d209b69cbf6edb22565efbf710}\label{class_ogre_1_1_animation_a0efa76d209b69cbf6edb22565efbf710}} 
\index{Ogre::Animation@{Ogre::Animation}!\_destroyNodeTracks@{\_destroyNodeTracks}}
\index{\_destroyNodeTracks@{\_destroyNodeTracks}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_destroyNodeTracks()}{\_destroyNodeTracks()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::\+\_\+destroy\+Node\+Tracks (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_animation_a64dbfe99f0e036b3d1cbba44522be893}{Track\+Handle\+List}} \&}]{tracks }\end{DoxyParamCaption})}



Internal method for destroy given node tracks. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a1049d56ed8224a9cb01cad5a21604966}\label{class_ogre_1_1_animation_a1049d56ed8224a9cb01cad5a21604966}} 
\index{Ogre::Animation@{Ogre::Animation}!clone@{clone}}
\index{clone@{clone}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{clone()}{clone()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}$\ast$ Ogre\+::\+Animation\+::clone (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{new\+Name }\end{DoxyParamCaption}) const}



Clone this animation. 

\begin{DoxyNote}{Note}
The pointer returned from this method is the only one recorded, thus it is up to the caller to arrange for the deletion of this object. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_animation_ad8bcd32239c62f94ac26f07b30de6db0}\label{class_ogre_1_1_animation_ad8bcd32239c62f94ac26f07b30de6db0}} 
\index{Ogre::Animation@{Ogre::Animation}!\_keyFrameListChanged@{\_keyFrameListChanged}}
\index{\_keyFrameListChanged@{\_keyFrameListChanged}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_keyFrameListChanged()}{\_keyFrameListChanged()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::\+\_\+key\+Frame\+List\+Changed (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Internal method used to tell the animation that keyframe list has been changed, which may cause it to rebuild some internal data. 

\mbox{\Hypertarget{class_ogre_1_1_animation_ae2faf3af9715730aa9435a8b568fc1ae}\label{class_ogre_1_1_animation_ae2faf3af9715730aa9435a8b568fc1ae}} 
\index{Ogre::Animation@{Ogre::Animation}!\_getTimeIndex@{\_getTimeIndex}}
\index{\_getTimeIndex@{\_getTimeIndex}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_getTimeIndex()}{\_getTimeIndex()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_time_index}{Time\+Index}} Ogre\+::\+Animation\+::\+\_\+get\+Time\+Index (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{time\+Pos }\end{DoxyParamCaption}) const}



Internal method used to convert time position to time index object. 

\begin{DoxyNote}{Note}
The time index returns by this function are associated with state of the animation object, if the animation object altered (e.\+g. create/remove keyframe or track), all related time index will invalidated. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em time\+Pos} & The time position. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The time index object which contains wrapped time position (in relation to the whole animation sequence) and lower bound index of global keyframe time list. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_animation_a22780aed1bf68e2cd67e6dd62ac5c287}\label{class_ogre_1_1_animation_a22780aed1bf68e2cd67e6dd62ac5c287}} 
\index{Ogre::Animation@{Ogre::Animation}!setUseBaseKeyFrame@{setUseBaseKeyFrame}}
\index{setUseBaseKeyFrame@{setUseBaseKeyFrame}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{setUseBaseKeyFrame()}{setUseBaseKeyFrame()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::set\+Use\+Base\+Key\+Frame (\begin{DoxyParamCaption}\item[{bool}]{use\+Base\+Key\+Frame,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{keyframe\+Time = {\ttfamily 0.0f},  }\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{base\+Anim\+Name = {\ttfamily \mbox{\hyperlink{group___general_gad842a4b416bd2f3245d2b44826a0aedc}{B\+L\+A\+N\+K\+S\+T\+R\+I\+NG}}} }\end{DoxyParamCaption})}



Sets a base keyframe which for the skeletal / pose keyframes in this animation. 

\begin{DoxyRemark}{Remarks}
Skeletal and pose animation keyframes are expressed as deltas from a given base state. By default, that is the binding setup of the skeleton, or the object space mesh positions for pose animation. However, sometimes it is useful for animators to create animations with a different starting pose, because that\textquotesingle{}s more convenient, and the animation is designed to simply be added to the existing animation state and not globally averaged with other animations (this is always the case with pose animations, but is activated for skeletal animations via A\+N\+I\+M\+B\+L\+E\+N\+D\+\_\+\+C\+U\+M\+U\+L\+A\+T\+I\+VE). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
In order for this to work, the keyframes need to be \textquotesingle{}re-\/based\textquotesingle{} against this new starting state, for example by treating the first keyframe as the reference point (and therefore representing no change). This can be achieved by applying the inverse of this reference keyframe against all other keyframes. Since this fundamentally changes the animation, this method just marks the animation as requiring this rebase, which is performed at the next \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}} \textquotesingle{}apply\textquotesingle{} call. This is to allow the \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}} to be re-\/saved with this flag set, but without having altered the keyframes yet, so no data is lost unintentionally. If you wish to save the animation after the adjustment has taken place, you can (
\end{DoxyParagraph}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_animation_a0594747e21adfeb55c8b9fdff6b53487}{\+\_\+apply\+Base\+Key\+Frame}}) 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em use\+Base\+Key\+Frame} & Whether a base keyframe should be used \\
\hline
{\em keyframe\+Time} & The time corresponding to the base keyframe, if any \\
\hline
{\em base\+Anim\+Name} & Optionally a different base animation (must contain the same tracks) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_animation_a12a10639e365d4946916aebf6528dd16}\label{class_ogre_1_1_animation_a12a10639e365d4946916aebf6528dd16}} 
\index{Ogre::Animation@{Ogre::Animation}!getUseBaseKeyFrame@{getUseBaseKeyFrame}}
\index{getUseBaseKeyFrame@{getUseBaseKeyFrame}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getUseBaseKeyFrame()}{getUseBaseKeyFrame()}}
{\footnotesize\ttfamily bool Ogre\+::\+Animation\+::get\+Use\+Base\+Key\+Frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Whether a base keyframe is being used for this \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}}. 

\mbox{\Hypertarget{class_ogre_1_1_animation_af4104403705a98439769af4294216d81}\label{class_ogre_1_1_animation_af4104403705a98439769af4294216d81}} 
\index{Ogre::Animation@{Ogre::Animation}!getBaseKeyFrameTime@{getBaseKeyFrameTime}}
\index{getBaseKeyFrameTime@{getBaseKeyFrameTime}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getBaseKeyFrameTime()}{getBaseKeyFrameTime()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Animation\+::get\+Base\+Key\+Frame\+Time (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



If a base keyframe is being used, the time of that keyframe. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a5a2b288d7370b8fecc76e55a506bb47c}\label{class_ogre_1_1_animation_a5a2b288d7370b8fecc76e55a506bb47c}} 
\index{Ogre::Animation@{Ogre::Animation}!getBaseKeyFrameAnimationName@{getBaseKeyFrameAnimationName}}
\index{getBaseKeyFrameAnimationName@{getBaseKeyFrameAnimationName}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getBaseKeyFrameAnimationName()}{getBaseKeyFrameAnimationName()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Animation\+::get\+Base\+Key\+Frame\+Animation\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



If a base keyframe is being used, the \mbox{\hyperlink{class_ogre_1_1_animation}{Animation}} that provides that keyframe. 

\mbox{\Hypertarget{class_ogre_1_1_animation_a0594747e21adfeb55c8b9fdff6b53487}\label{class_ogre_1_1_animation_a0594747e21adfeb55c8b9fdff6b53487}} 
\index{Ogre::Animation@{Ogre::Animation}!\_applyBaseKeyFrame@{\_applyBaseKeyFrame}}
\index{\_applyBaseKeyFrame@{\_applyBaseKeyFrame}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_applyBaseKeyFrame()}{\_applyBaseKeyFrame()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::\+\_\+apply\+Base\+Key\+Frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Internal method to adjust keyframes relative to a base keyframe (. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_animation_a22780aed1bf68e2cd67e6dd62ac5c287}{set\+Use\+Base\+Key\+Frame}}) $\ast$/ 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_animation_a7deef4dd997370e01c59edc4f5d44500}\label{class_ogre_1_1_animation_a7deef4dd997370e01c59edc4f5d44500}} 
\index{Ogre::Animation@{Ogre::Animation}!\_notifyContainer@{\_notifyContainer}}
\index{\_notifyContainer@{\_notifyContainer}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{\_notifyContainer()}{\_notifyContainer()}}
{\footnotesize\ttfamily void Ogre\+::\+Animation\+::\+\_\+notify\+Container (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_animation_container}{Animation\+Container}} $\ast$}]{c }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_animation_ae5edd991dc35ae17e1a2abbe85608154}\label{class_ogre_1_1_animation_ae5edd991dc35ae17e1a2abbe85608154}} 
\index{Ogre::Animation@{Ogre::Animation}!getContainer@{getContainer}}
\index{getContainer@{getContainer}!Ogre::Animation@{Ogre::Animation}}
\doxysubsubsection{\texorpdfstring{getContainer()}{getContainer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_animation_container}{Animation\+Container}}$\ast$ Ogre\+::\+Animation\+::get\+Container (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Retrieve the container of this animation. 



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_animation_8h}{Ogre\+Animation.\+h}}\end{DoxyCompactItemize}
