Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::Animation Class Reference

An animation sequence. More...

#include <OgreAnimation.h>

List of all members.

Public Types

typedef std::map< unsigned
short, AnimationTrack * > 
TrackList
enum  InterpolationMode { IM_LINEAR, IM_SPLINE }
 The types of animation interpolation available. More...


Public Methods

 Animation (const String &name, Real length)
 You should not use this constructor directly, use the parent object such as Skeleton instead. More...

virtual ~Animation ()
String getName (void) const
 Gets the name of this animation. More...

Real getLength (void) const
 Gets the total length of the animation. More...

AnimationTrackcreateTrack (unsigned short handle)
 Creates an AnimationTrack. More...

AnimationTrackcreateTrack (unsigned short handle, Node *node)
 Creates a new AnimationTrack automatically associated with a Node. More...

unsigned short getNumTracks (void) const
 Gets the number of AnimationTrack objects which make up this animation. More...

AnimationTrackgetTrack (unsigned short handle) const
 Gets a track by it's handle. More...

void destroyTrack (unsigned short handle)
 Destroys the track with the given handle. More...

void destroyAllTracks (void)
 Removes and destroys all tracks making up this animation. More...

void apply (Real timePos, Real weight=1.0, bool accumulate=false)
 Applies an animation given a specific time point and weight. More...

void setInterpolationMode (InterpolationMode im)
 Tells the animation how to interpolate between keyframes. More...

InterpolationMode getInterpolationMode (void) const
 Gets the current interpolation mode of this animation. More...

const TrackList_getTrackList (void) const
 Fast access to NON-UPDATEABLE track list. More...


Static Public Methods

void setDefaultInterpolationMode (InterpolationMode im)
 Sets the default animation interpolation mode. More...

InterpolationMode getDefaultInterpolationMode (void)
 Gets the default interpolation mode for all animations. More...


Protected Attributes

TrackList mTrackList
 Tracks, indexed by handle. More...

String mName
Real mLength
InterpolationMode mInterpolationMode

Static Protected Attributes

InterpolationMode msDefaultInterpolationMode = Animation::IM_LINEAR


Detailed Description

An animation sequence.

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 'tracks', which are the more specific types of animation.

You should not create these animations directly. They will be created via a parent object which owns the animation, e.g. Skeleton.


Member Typedef Documentation

typedef std::map<unsigned short, AnimationTrack*> Ogre::Animation::TrackList
 


Member Enumeration Documentation

enum Ogre::Animation::InterpolationMode
 

The types of animation interpolation available.

Enumeration values:
IM_LINEAR  Values are interpolated along straight lines.
IM_SPLINE  Values are interpolated along a spline, resulting in smoother changes in direction.


Constructor & Destructor Documentation

Ogre::Animation::Animation const String   name,
Real    length
 

You should not use this constructor directly, use the parent object such as Skeleton instead.

Parameters:
name  The name of the animation, should be unique within it's parent (e.g. Skeleton)
length  The length of the animation in seconds.

Ogre::Animation::~Animation   [virtual]
 


Member Function Documentation

const Animation::TrackList & Ogre::Animation::_getTrackList void    const
 

Fast access to NON-UPDATEABLE track list.

void Ogre::Animation::apply Real    timePos,
Real    weight = 1.0,
bool    accumulate = false
 

Applies an animation given a specific time point and weight.

Remarks:
Where you have associated animation tracks with Node objects, you can eaily apply an animation to those nodes by calling this method.
Parameters:
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.

AnimationTrack * Ogre::Animation::createTrack unsigned short    handle,
Node   node
 

Creates a new AnimationTrack automatically associated with a Node.

Remarks:
This method creates a standard AnimationTrack, but also associates it with a target Node which will receive all keyframe effects.
Parameters:
handle  Numeric handle to give the track, used for accessing the track later. Must be unique within this Animation.
node  A pointer to the Node object which will be affected by this track

AnimationTrack * Ogre::Animation::createTrack unsigned short    handle
 

Creates an AnimationTrack.

Parameters:
handle  Numeric handle to give the track, used for accessing the track later. Must be unique within this Animation.

void Ogre::Animation::destroyAllTracks void   
 

Removes and destroys all tracks making up this animation.

void Ogre::Animation::destroyTrack unsigned short    handle
 

Destroys the track with the given handle.

Animation::InterpolationMode Ogre::Animation::getDefaultInterpolationMode void    [static]
 

Gets the default interpolation mode for all animations.

Animation::InterpolationMode Ogre::Animation::getInterpolationMode void    const
 

Gets the current interpolation mode of this animation.

Remarks:
See setInterpolationMode for more info.

Real Ogre::Animation::getLength void    const
 

Gets the total length of the animation.

String Ogre::Animation::getName void    const
 

Gets the name of this animation.

unsigned short Ogre::Animation::getNumTracks void    const
 

Gets the number of AnimationTrack objects which make up this animation.

AnimationTrack * Ogre::Animation::getTrack unsigned short    handle const
 

Gets a track by it's handle.

void Ogre::Animation::setDefaultInterpolationMode InterpolationMode    im [static]
 

Sets the default animation interpolation mode.

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 setInterpolationMode method on the instance in question.

void Ogre::Animation::setInterpolationMode InterpolationMode    im
 

Tells the animation how to interpolate between keyframes.

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.

You can also change the default animation behaviour by calling Animation::setDefaultInterpolationMode.


Member Data Documentation

InterpolationMode Ogre::Animation::mInterpolationMode [protected]
 

Real Ogre::Animation::mLength [protected]
 

String Ogre::Animation::mName [protected]
 

Animation::InterpolationMode Ogre::Animation::msDefaultInterpolationMode = Animation::IM_LINEAR [static, protected]
 

TrackList Ogre::Animation::mTrackList [protected]
 

Tracks, indexed by handle.

Copyright © 2002 by The OGRE Team