#include <OgreAnimationTrack.h>
Public Member Functions | |
| AnimationTrack (Animation *parent, unsigned short handle) | |
| Constructor. | |
| virtual | ~AnimationTrack () |
| unsigned short | getHandle (void) const |
| Get the handle associated with this track. | |
| virtual unsigned short | getNumKeyFrames (void) const |
| Returns the number of keyframes in this animation. | |
| virtual KeyFrame * | getKeyFrame (unsigned short index) const |
| Returns the KeyFrame at the specified index. | |
| virtual Real | getKeyFramesAtTime (const TimeIndex &timeIndex, KeyFrame **keyFrame1, KeyFrame **keyFrame2, unsigned short *firstKeyIndex=0) const |
| Gets the 2 KeyFrame objects which are active at the time given, and the blend value between them. | |
| virtual KeyFrame * | createKeyFrame (Real timePos) |
| Creates a new KeyFrame and adds it to this animation at the given time index. | |
| virtual void | removeKeyFrame (unsigned short index) |
| Removes a KeyFrame by it's index. | |
| virtual void | removeAllKeyFrames (void) |
| Removes all the KeyFrames from this track. | |
| virtual void | getInterpolatedKeyFrame (const TimeIndex &timeIndex, KeyFrame *kf) const =0 |
| Gets a KeyFrame object which contains the interpolated transforms at the time index specified. | |
| virtual void | apply (const TimeIndex &timeIndex, Real weight=1.0, Real scale=1.0f)=0 |
| Applies an animation track to the designated target. | |
| virtual void | _keyFrameDataChanged (void) const |
| Internal method used to tell the track that keyframe data has been changed, which may cause it to rebuild some internal data. | |
| virtual bool | hasNonZeroKeyFrames (void) const |
| Method to determine if this track has any KeyFrames which are doing anything useful - can be used to determine if this track can be optimised out. | |
| virtual void | optimise (void) |
| Optimise the current track by removing any duplicate keyframes. | |
| virtual void | _collectKeyFrameTimes (std::vector< Real > &keyFrameTimes) |
| Internal method to collect keyframe times, in unique, ordered format. | |
| virtual void | _buildKeyFrameIndexMap (const std::vector< Real > &keyFrameTimes) |
| Internal method to build keyframe time index map to translate global lower bound index to local lower bound index. | |
Protected Types | |
| typedef std::vector < KeyFrame * > | KeyFrameList |
| typedef std::vector < ushort > | KeyFrameIndexMap |
| Map used to translate global keyframe time lower bound index to local lower bound index. | |
Protected Member Functions | |
| virtual KeyFrame * | createKeyFrameImpl (Real time)=0 |
| Create a keyframe implementation - must be overridden. | |
| virtual void | populateClone (AnimationTrack *clone) const |
| Internal method for clone implementation. | |
Protected Attributes | |
| KeyFrameList | mKeyFrames |
| Animation * | mParent |
| unsigned short | mHandle |
| KeyFrameIndexMap | mKeyFrameIndexMap |
Since the most common animable object is a Node, there are options in this class for associating the track with a Node which will receive keyframe updates automatically when the 'apply' method is called.
By default rotation is done using shortest-path algorithm. It is possible to change this behaviour using setUseShortestRotationPath() method.
Definition at line 116 of file OgreAnimationTrack.h.
typedef std::vector<KeyFrame*> Ogre::AnimationTrack::KeyFrameList [protected] |
Definition at line 216 of file OgreAnimationTrack.h.
typedef std::vector<ushort> Ogre::AnimationTrack::KeyFrameIndexMap [protected] |
Map used to translate global keyframe time lower bound index to local lower bound index.
Definition at line 222 of file OgreAnimationTrack.h.
| Ogre::AnimationTrack::AnimationTrack | ( | Animation * | parent, | |
| unsigned short | handle | |||
| ) |
Constructor.
| virtual Ogre::AnimationTrack::~AnimationTrack | ( | ) | [virtual] |
| unsigned short Ogre::AnimationTrack::getHandle | ( | void | ) | const |
| virtual unsigned short Ogre::AnimationTrack::getNumKeyFrames | ( | void | ) | const [virtual] |
Returns the number of keyframes in this animation.
| virtual KeyFrame* Ogre::AnimationTrack::getKeyFrame | ( | unsigned short | index | ) | const [virtual] |
Returns the KeyFrame at the specified index.
| virtual Real Ogre::AnimationTrack::getKeyFramesAtTime | ( | const TimeIndex & | timeIndex, | |
| KeyFrame ** | keyFrame1, | |||
| KeyFrame ** | keyFrame2, | |||
| unsigned short * | firstKeyIndex = 0 | |||
| ) | const [virtual] |
Gets the 2 KeyFrame objects which are active at the time given, and the blend value between them.
| timeIndex | The time index. | |
| keyFrame1 | Pointer to a KeyFrame pointer which will receive the pointer to the keyframe just before or at this time index. | |
| keyFrame2 | Pointer to a KeyFrame pointer which will receive the pointer to the keyframe just after this time index. | |
| firstKeyIndex | Pointer to an unsigned short which, if supplied, will receive the index of the 'from' keyframe incase the caller needs it. |
Creates a new KeyFrame and adds it to this animation at the given time index.
| timePos | The time from which this KeyFrame will apply. |
| virtual void Ogre::AnimationTrack::removeKeyFrame | ( | unsigned short | index | ) | [virtual] |
Removes a KeyFrame by it's index.
| virtual void Ogre::AnimationTrack::removeAllKeyFrames | ( | void | ) | [virtual] |
Removes all the KeyFrames from this track.
| virtual void Ogre::AnimationTrack::getInterpolatedKeyFrame | ( | const TimeIndex & | timeIndex, | |
| KeyFrame * | kf | |||
| ) | const [pure virtual] |
Gets a KeyFrame object which contains the interpolated transforms at the time index specified.
| timeIndex | The time (in relation to the whole animation sequence) | |
| kf | Keyframe object to store results |
Implemented in Ogre::NumericAnimationTrack, Ogre::NodeAnimationTrack, and Ogre::VertexAnimationTrack.
| virtual void Ogre::AnimationTrack::apply | ( | const TimeIndex & | timeIndex, | |
| Real | weight = 1.0, |
|||
| Real | scale = 1.0f | |||
| ) | [pure virtual] |
Applies an animation track to the designated target.
| timeIndex | The time position in the animation to apply. | |
| weight | The influence to give to this track, 1.0 for full influence, less to blend with other animations. | |
| scale | The scale to apply to translations and scalings, useful for adapting an animation to a different size target. |
Implemented in Ogre::NumericAnimationTrack, Ogre::NodeAnimationTrack, and Ogre::VertexAnimationTrack.
| virtual void Ogre::AnimationTrack::_keyFrameDataChanged | ( | void | ) | const [virtual] |
Internal method used to tell the track that keyframe data has been changed, which may cause it to rebuild some internal data.
Reimplemented in Ogre::NodeAnimationTrack.
Definition at line 197 of file OgreAnimationTrack.h.
| virtual bool Ogre::AnimationTrack::hasNonZeroKeyFrames | ( | void | ) | const [virtual] |
Method to determine if this track has any KeyFrames which are doing anything useful - can be used to determine if this track can be optimised out.
Reimplemented in Ogre::NodeAnimationTrack, and Ogre::VertexAnimationTrack.
Definition at line 203 of file OgreAnimationTrack.h.
| virtual void Ogre::AnimationTrack::optimise | ( | void | ) | [virtual] |
Optimise the current track by removing any duplicate keyframes.
Reimplemented in Ogre::NodeAnimationTrack, and Ogre::VertexAnimationTrack.
Definition at line 206 of file OgreAnimationTrack.h.
| virtual void Ogre::AnimationTrack::_collectKeyFrameTimes | ( | std::vector< Real > & | keyFrameTimes | ) | [virtual] |
Internal method to collect keyframe times, in unique, ordered format.
| virtual void Ogre::AnimationTrack::_buildKeyFrameIndexMap | ( | const std::vector< Real > & | keyFrameTimes | ) | [virtual] |
Internal method to build keyframe time index map to translate global lower bound index to local lower bound index.
Create a keyframe implementation - must be overridden.
Implemented in Ogre::NumericAnimationTrack, Ogre::NodeAnimationTrack, and Ogre::VertexAnimationTrack.
| virtual void Ogre::AnimationTrack::populateClone | ( | AnimationTrack * | clone | ) | const [protected, virtual] |
Internal method for clone implementation.
KeyFrameList Ogre::AnimationTrack::mKeyFrames [protected] |
Definition at line 217 of file OgreAnimationTrack.h.
Animation* Ogre::AnimationTrack::mParent [protected] |
Definition at line 218 of file OgreAnimationTrack.h.
unsigned short Ogre::AnimationTrack::mHandle [protected] |
Definition at line 219 of file OgreAnimationTrack.h.
Definition at line 223 of file OgreAnimationTrack.h.
Copyright © 2000-2005 by The OGRE Team

This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Mon Jun 16 12:49:07 2008