#include <OgreAnimation.h>
Public Types | |
enum | InterpolationMode { IM_LINEAR, IM_SPLINE } |
The types of animation interpolation available. More... | |
enum | RotationInterpolationMode { RIM_LINEAR, RIM_SPHERICAL } |
The types of rotational interpolation available. More... | |
typedef std::map< unsigned short, NodeAnimationTrack * > | NodeTrackList |
typedef ConstMapIterator < NodeTrackList > | NodeTrackIterator |
typedef std::map< unsigned short, NumericAnimationTrack * > | NumericTrackList |
typedef ConstMapIterator < NumericTrackList > | NumericTrackIterator |
typedef std::map< unsigned short, VertexAnimationTrack * > | VertexTrackList |
typedef ConstMapIterator < VertexTrackList > | VertexTrackIterator |
typedef std::set< ushort > | TrackHandleList |
A list of track handles. | |
Public Member Functions | |
Animation (const String &name, Real length) | |
You should not use this constructor directly, use the parent object such as Skeleton instead. | |
virtual | ~Animation () |
const String & | getName (void) const |
Gets the name of this animation. | |
Real | getLength (void) const |
Gets the total length of the animation. | |
void | setLength (Real len) |
Sets the length of the animation. | |
NodeAnimationTrack * | createNodeTrack (unsigned short handle) |
Creates a NodeAnimationTrack for animating a Node. | |
NumericAnimationTrack * | createNumericTrack (unsigned short handle) |
Creates a NumericAnimationTrack for animating any numeric value. | |
VertexAnimationTrack * | createVertexTrack (unsigned short handle, VertexAnimationType animType) |
Creates a VertexAnimationTrack for animating vertex position data. | |
NodeAnimationTrack * | createNodeTrack (unsigned short handle, Node *node) |
Creates a new AnimationTrack automatically associated with a Node. | |
NumericAnimationTrack * | createNumericTrack (unsigned short handle, const AnimableValuePtr &anim) |
Creates a NumericAnimationTrack and associates it with an animable. | |
VertexAnimationTrack * | createVertexTrack (unsigned short handle, VertexData *data, VertexAnimationType animType) |
Creates a VertexAnimationTrack and associates it with VertexData. | |
unsigned short | getNumNodeTracks (void) const |
Gets the number of NodeAnimationTrack objects contained in this animation. | |
NodeAnimationTrack * | getNodeTrack (unsigned short handle) const |
Gets a node track by it's handle. | |
bool | hasNodeTrack (unsigned short handle) const |
Does a track exist with the given handle? | |
unsigned short | getNumNumericTracks (void) const |
Gets the number of NumericAnimationTrack objects contained in this animation. | |
NumericAnimationTrack * | getNumericTrack (unsigned short handle) const |
Gets a numeric track by it's handle. | |
bool | hasNumericTrack (unsigned short handle) const |
Does a track exist with the given handle? | |
unsigned short | getNumVertexTracks (void) const |
Gets the number of VertexAnimationTrack objects contained in this animation. | |
VertexAnimationTrack * | getVertexTrack (unsigned short handle) const |
Gets a Vertex track by it's handle. | |
bool | hasVertexTrack (unsigned short handle) const |
Does a track exist with the given handle? | |
void | destroyNodeTrack (unsigned short handle) |
Destroys the node track with the given handle. | |
void | destroyNumericTrack (unsigned short handle) |
Destroys the numeric track with the given handle. | |
void | destroyVertexTrack (unsigned short handle) |
Destroys the Vertex track with the given handle. | |
void | destroyAllTracks (void) |
Removes and destroys all tracks making up this animation. | |
void | destroyAllNodeTracks (void) |
Removes and destroys all tracks making up this animation. | |
void | destroyAllNumericTracks (void) |
Removes and destroys all tracks making up this animation. | |
void | destroyAllVertexTracks (void) |
Removes and destroys all tracks making up this animation. | |
void | apply (Real timePos, Real weight=1.0, Real scale=1.0f) |
Applies an animation given a specific time point and weight. | |
void | apply (Skeleton *skeleton, Real timePos, Real weight=1.0, Real scale=1.0f) |
Applies all node tracks given a specific time point and weight to a given skeleton. | |
void | apply (Skeleton *skeleton, Real timePos, float weight, const AnimationState::BoneBlendMask *blendMask, Real scale) |
Applies all node tracks given a specific time point and weight to a given skeleton. | |
void | apply (Entity *entity, Real timePos, Real weight, bool software, bool hardware) |
Applies all vertex tracks given a specific time point and weight to a given entity. | |
void | setInterpolationMode (InterpolationMode im) |
Tells the animation how to interpolate between keyframes. | |
InterpolationMode | getInterpolationMode (void) const |
Gets the current interpolation mode of this animation. | |
void | setRotationInterpolationMode (RotationInterpolationMode im) |
Tells the animation how to interpolate rotations. | |
RotationInterpolationMode | getRotationInterpolationMode (void) const |
Gets the current rotation interpolation mode of this animation. | |
const NodeTrackList & | _getNodeTrackList (void) const |
Fast access to NON-UPDATEABLE node track list. | |
NodeTrackIterator | getNodeTrackIterator (void) const |
Get non-updateable iterator over node tracks. | |
const NumericTrackList & | _getNumericTrackList (void) const |
Fast access to NON-UPDATEABLE numeric track list. | |
NumericTrackIterator | getNumericTrackIterator (void) const |
Get non-updateable iterator over node tracks. | |
const VertexTrackList & | _getVertexTrackList (void) const |
Fast access to NON-UPDATEABLE Vertex track list. | |
VertexTrackIterator | getVertexTrackIterator (void) const |
Get non-updateable iterator over node tracks. | |
void | optimise (bool discardIdentityNodeTracks=true) |
Optimise an animation by removing unnecessary tracks and keyframes. | |
void | _collectIdentityNodeTracks (TrackHandleList &tracks) const |
Internal method for collecting identity node tracks. | |
void | _destroyNodeTracks (const TrackHandleList &tracks) |
Internal method for destroy given node tracks. | |
Animation * | clone (const String &newName) const |
Clone this animation. | |
void | _keyFrameListChanged (void) |
Internal method used to tell the animation that keyframe list has been changed, which may cause it to rebuild some internal data. | |
TimeIndex | _getTimeIndex (Real timePos) const |
Internal method used to convert time position to time index object. | |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
void * | operator new[] (size_t sz) |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
Static Public Member Functions | |
static void | setDefaultInterpolationMode (InterpolationMode im) |
Sets the default animation interpolation mode. | |
static InterpolationMode | getDefaultInterpolationMode (void) |
Gets the default interpolation mode for all animations. | |
static void | setDefaultRotationInterpolationMode (RotationInterpolationMode im) |
Sets the default rotation interpolation mode. | |
static RotationInterpolationMode | getDefaultRotationInterpolationMode (void) |
Gets the default rotation interpolation mode for all animations. | |
Protected Types | |
typedef std::vector< Real > | KeyFrameTimeList |
Global keyframe time list used to search global keyframe index. | |
Protected Member Functions | |
void | optimiseNodeTracks (bool discardIdentityTracks) |
void | optimiseVertexTracks (void) |
void | buildKeyFrameTimeList (void) const |
Internal method to build global keyframe time list. | |
Protected Attributes | |
NodeTrackList | mNodeTrackList |
Node tracks, indexed by handle. | |
NumericTrackList | mNumericTrackList |
Numeric tracks, indexed by handle. | |
VertexTrackList | mVertexTrackList |
Vertex tracks, indexed by handle. | |
String | mName |
Real | mLength |
InterpolationMode | mInterpolationMode |
RotationInterpolationMode | mRotationInterpolationMode |
KeyFrameTimeList | mKeyFrameTimes |
bool | mKeyFrameTimesDirty |
Dirty flag indicate that keyframe time list need to rebuild. | |
Static Protected Attributes | |
static InterpolationMode | msDefaultInterpolationMode |
static RotationInterpolationMode | msDefaultRotationInterpolationMode |
Definition at line 52 of file OgreAnimation.h.
typedef std::map<unsigned short, NodeAnimationTrack*> Ogre::Animation::NodeTrackList |
Definition at line 301 of file OgreAnimation.h.
Definition at line 302 of file OgreAnimation.h.
typedef std::map<unsigned short, NumericAnimationTrack*> Ogre::Animation::NumericTrackList |
Definition at line 304 of file OgreAnimation.h.
Definition at line 305 of file OgreAnimation.h.
typedef std::map<unsigned short, VertexAnimationTrack*> Ogre::Animation::VertexTrackList |
Definition at line 307 of file OgreAnimation.h.
Definition at line 308 of file OgreAnimation.h.
typedef std::set<ushort> Ogre::Animation::TrackHandleList |
typedef std::vector<Real> Ogre::Animation::KeyFrameTimeList [protected] |
Global keyframe time list used to search global keyframe index.
Definition at line 410 of file OgreAnimation.h.
The types of animation interpolation available.
IM_LINEAR |
Values are interpolated along straight lines.
|
IM_SPLINE |
Values are interpolated along a spline, resulting in smoother changes in direction.
|
Definition at line 57 of file OgreAnimation.h.
The types of rotational interpolation available.
Definition at line 66 of file OgreAnimation.h.
virtual Ogre::Animation::~Animation | ( | ) | [virtual] |
const String& Ogre::Animation::getName | ( | void | ) | const |
Gets the name of this animation.
Real Ogre::Animation::getLength | ( | void | ) | const |
Gets the total length of the animation.
void Ogre::Animation::setLength | ( | Real | len | ) |
Sets the length of the animation.
NodeAnimationTrack* Ogre::Animation::createNodeTrack | ( | unsigned short | handle | ) |
Creates a NodeAnimationTrack for animating a Node.
handle | Handle to give the track, used for accessing the track later. Must be unique within this Animation. |
NumericAnimationTrack* Ogre::Animation::createNumericTrack | ( | unsigned short | handle | ) |
Creates a NumericAnimationTrack for animating any numeric value.
handle | Handle to give the track, used for accessing the track later. Must be unique within this Animation. |
VertexAnimationTrack* Ogre::Animation::createVertexTrack | ( | unsigned short | handle, | |
VertexAnimationType | animType | |||
) |
Creates a VertexAnimationTrack for animating vertex position data.
handle | Handle to give the track, used for accessing the track later. Must be unique within this Animation, and is used to identify the target. For example when applied to a Mesh, the handle must reference the index of the geometry being modified; 0 for the shared geometry, and 1+ for SubMesh geometry with the same index-1. | |
animType | Either morph or pose animation, |
NodeAnimationTrack* Ogre::Animation::createNodeTrack | ( | unsigned short | handle, | |
Node * | node | |||
) |
Creates a new AnimationTrack automatically associated with a Node.
NumericAnimationTrack* Ogre::Animation::createNumericTrack | ( | unsigned short | handle, | |
const AnimableValuePtr & | anim | |||
) |
Creates a NumericAnimationTrack and associates it with an animable.
handle | Handle to give the track, used for accessing the track later. | |
anim | Animable object link Must be unique within this Animation. |
VertexAnimationTrack* Ogre::Animation::createVertexTrack | ( | unsigned short | handle, | |
VertexData * | data, | |||
VertexAnimationType | animType | |||
) |
Creates a VertexAnimationTrack and associates it with VertexData.
handle | Handle to give the track, used for accessing the track later. | |
data | VertexData object link | |
animType | The animation type Must be unique within this Animation. |
unsigned short Ogre::Animation::getNumNodeTracks | ( | void | ) | const |
Gets the number of NodeAnimationTrack objects contained in this animation.
NodeAnimationTrack* Ogre::Animation::getNodeTrack | ( | unsigned short | handle | ) | const |
Gets a node track by it's handle.
bool Ogre::Animation::hasNodeTrack | ( | unsigned short | handle | ) | const |
Does a track exist with the given handle?
unsigned short Ogre::Animation::getNumNumericTracks | ( | void | ) | const |
Gets the number of NumericAnimationTrack objects contained in this animation.
NumericAnimationTrack* Ogre::Animation::getNumericTrack | ( | unsigned short | handle | ) | const |
Gets a numeric track by it's handle.
bool Ogre::Animation::hasNumericTrack | ( | unsigned short | handle | ) | const |
Does a track exist with the given handle?
unsigned short Ogre::Animation::getNumVertexTracks | ( | void | ) | const |
Gets the number of VertexAnimationTrack objects contained in this animation.
VertexAnimationTrack* Ogre::Animation::getVertexTrack | ( | unsigned short | handle | ) | const |
Gets a Vertex track by it's handle.
bool Ogre::Animation::hasVertexTrack | ( | unsigned short | handle | ) | const |
Does a track exist with the given handle?
void Ogre::Animation::destroyNodeTrack | ( | unsigned short | handle | ) |
Destroys the node track with the given handle.
void Ogre::Animation::destroyNumericTrack | ( | unsigned short | handle | ) |
Destroys the numeric track with the given handle.
void Ogre::Animation::destroyVertexTrack | ( | unsigned short | handle | ) |
Destroys the Vertex track with the given handle.
void Ogre::Animation::destroyAllTracks | ( | void | ) |
Removes and destroys all tracks making up this animation.
void Ogre::Animation::destroyAllNodeTracks | ( | void | ) |
Removes and destroys all tracks making up this animation.
void Ogre::Animation::destroyAllNumericTracks | ( | void | ) |
Removes and destroys all tracks making up this animation.
void Ogre::Animation::destroyAllVertexTracks | ( | void | ) |
Removes and destroys all tracks making up this animation.
Applies an animation given a specific time point and weight.
timePos | 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. |
void Ogre::Animation::apply | ( | Skeleton * | skeleton, | |
Real | timePos, | |||
Real | weight = 1.0 , |
|||
Real | scale = 1.0f | |||
) |
Applies all node tracks given a specific time point and weight to a given skeleton.
timePos | 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. |
void Ogre::Animation::apply | ( | Skeleton * | skeleton, | |
Real | timePos, | |||
float | weight, | |||
const AnimationState::BoneBlendMask * | blendMask, | |||
Real | scale | |||
) |
Applies all node tracks given a specific time point and weight to a given skeleton.
timePos | 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. | |
blendMask | The influence array defining additional per bone weights. These will be modulated with the weight factor. | |
scale | The scale to apply to translations and scalings, useful for adapting an animation to a different size target. |
void Ogre::Animation::apply | ( | Entity * | entity, | |
Real | timePos, | |||
Real | weight, | |||
bool | software, | |||
bool | hardware | |||
) |
Applies all vertex tracks given a specific time point and weight to a given entity.
entity | The Entity to which this animation should be applied | |
timePos | The time position in the animation to apply. | |
weight | The weight at which the animation should be applied (only affects pose animation) | |
software | Whether to populate the software morph vertex data | |
hardware | Whether to populate the hardware morph vertex data |
void Ogre::Animation::setInterpolationMode | ( | InterpolationMode | im | ) |
Tells the animation how to interpolate between keyframes.
InterpolationMode Ogre::Animation::getInterpolationMode | ( | void | ) | const |
Gets the current interpolation mode of this animation.
void Ogre::Animation::setRotationInterpolationMode | ( | RotationInterpolationMode | im | ) |
Tells the animation how to interpolate rotations.
RotationInterpolationMode Ogre::Animation::getRotationInterpolationMode | ( | void | ) | const |
Gets the current rotation interpolation mode of this animation.
static void Ogre::Animation::setDefaultInterpolationMode | ( | InterpolationMode | im | ) | [static] |
Sets the default animation interpolation mode.
static InterpolationMode Ogre::Animation::getDefaultInterpolationMode | ( | void | ) | [static] |
Gets the default interpolation mode for all animations.
static void Ogre::Animation::setDefaultRotationInterpolationMode | ( | RotationInterpolationMode | im | ) | [static] |
Sets the default rotation interpolation mode.
static RotationInterpolationMode Ogre::Animation::getDefaultRotationInterpolationMode | ( | void | ) | [static] |
Gets the default rotation interpolation mode for all animations.
const NodeTrackList& Ogre::Animation::_getNodeTrackList | ( | void | ) | const |
Fast access to NON-UPDATEABLE node track list.
NodeTrackIterator Ogre::Animation::getNodeTrackIterator | ( | void | ) | const |
const NumericTrackList& Ogre::Animation::_getNumericTrackList | ( | void | ) | const |
Fast access to NON-UPDATEABLE numeric track list.
NumericTrackIterator Ogre::Animation::getNumericTrackIterator | ( | void | ) | const |
const VertexTrackList& Ogre::Animation::_getVertexTrackList | ( | void | ) | const |
Fast access to NON-UPDATEABLE Vertex track list.
VertexTrackIterator Ogre::Animation::getVertexTrackIterator | ( | void | ) | const |
void Ogre::Animation::optimise | ( | bool | discardIdentityNodeTracks = true |
) |
Optimise an animation by removing unnecessary tracks and keyframes.
discardIdentityNodeTracks | If true, discard identity node tracks. |
void Ogre::Animation::_collectIdentityNodeTracks | ( | TrackHandleList & | tracks | ) | const |
Internal method for collecting identity node tracks.
tracks | A list of track handle of non-identity node tracks, where this method will remove non-identity node track handles. |
void Ogre::Animation::_destroyNodeTracks | ( | const TrackHandleList & | tracks | ) |
Internal method for destroy given node tracks.
Clone this animation.
void Ogre::Animation::_keyFrameListChanged | ( | void | ) |
Internal method used to tell the animation that keyframe list has been changed, which may cause it to rebuild some internal data.
Definition at line 378 of file OgreAnimation.h.
Internal method used to convert time position to time index object.
timePos | The time position. |
void Ogre::Animation::optimiseNodeTracks | ( | bool | discardIdentityTracks | ) | [protected] |
void Ogre::Animation::optimiseVertexTracks | ( | void | ) | [protected] |
void Ogre::Animation::buildKeyFrameTimeList | ( | void | ) | const [protected] |
Internal method to build global keyframe time list.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz, | |
const char * | file, | |||
int | line, | |||
const char * | func | |||
) | [inherited] |
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | [inherited] |
Definition at line 67 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz, | |
void * | ptr | |||
) | [inherited] |
void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz, | |
const char * | file, | |||
int | line, | |||
const char * | func | |||
) | [inherited] |
void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | [inherited] |
Definition at line 84 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | [inherited] |
Definition at line 89 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
void * | ||||
) | [inherited] |
Definition at line 95 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
const char * | , | |||
int | , | |||
const char * | ||||
) | [inherited] |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | [inherited] |
Definition at line 106 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr, | |
const char * | , | |||
int | , | |||
const char * | ||||
) | [inherited] |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
NodeTrackList Ogre::Animation::mNodeTrackList [protected] |
NumericTrackList Ogre::Animation::mNumericTrackList [protected] |
VertexTrackList Ogre::Animation::mVertexTrackList [protected] |
String Ogre::Animation::mName [protected] |
Definition at line 399 of file OgreAnimation.h.
Real Ogre::Animation::mLength [protected] |
Definition at line 401 of file OgreAnimation.h.
InterpolationMode Ogre::Animation::mInterpolationMode [protected] |
Definition at line 403 of file OgreAnimation.h.
Definition at line 404 of file OgreAnimation.h.
InterpolationMode Ogre::Animation::msDefaultInterpolationMode [static, protected] |
Definition at line 406 of file OgreAnimation.h.
RotationInterpolationMode Ogre::Animation::msDefaultRotationInterpolationMode [static, protected] |
Definition at line 407 of file OgreAnimation.h.
KeyFrameTimeList Ogre::Animation::mKeyFrameTimes [mutable, protected] |
Definition at line 411 of file OgreAnimation.h.
bool Ogre::Animation::mKeyFrameTimesDirty [mutable, protected] |
Dirty flag indicate that keyframe time list need to rebuild.
Definition at line 413 of file OgreAnimation.h.
Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 27 22:02:49 2009