Public Member Functions | Protected Member Functions | Protected Attributes

sp::scene::Animation Class Reference
[Animation System]

#include <spAnimation.hpp>

Inheritance diagram for sp::scene::Animation:
sp::scene::MeshAnimation sp::scene::NodeAnimation sp::scene::MorphTargetAnimation sp::scene::SkeletalAnimation

List of all members.

Public Member Functions

virtual ~Animation ()
virtual bool play (const EAnimPlaybackModes Mode, u32 FirstFrame=0, u32 LastFrame=ANIM_LAST_FRAME)
virtual void pause (bool IsPaused=true)
 Pauses or resumes the animation.
virtual void stop (bool IsReset=false)
 Stops the animation.
virtual void clearKeyframes ()=0
 Clears all keyframes.
virtual void setFrame (u32 Index)
 Sets the new frame index. Should not be used while the animation is playing.
virtual void updateAnimation (SceneNode *Node)=0
 Updates the animation process if currently it's playing.
virtual u32 getKeyframeCount () const =0
 Returns the count of keyframes.
virtual void interpolate (u32 IndexFrom, u32 IndexTo, f32 Interpolation)=0
 Makes an interpolation between the two given frames.
virtual bool interpolateRange (u32 FirstFrame, u32 LastFrame, f32 Interpolation)
 Makes an interpolation over the given sequence. In this case the first frame must be smaller then the last frame!
virtual void interpolateBlended (const AnimationPlayback &PlaybackFrom, const AnimationPlayback &PlaybackTo, f32 BlendingFactor)
 Makes an blended interpolation between the two given playback states. This can be used for 'animation blending'.
virtual void addSceneNode (SceneNode *Object)
virtual void removeSceneNode (SceneNode *Object)
 Removes the specified scene node from the animatable object list.
virtual void clearSceneNodes ()
 Removes the animatable object list.
virtual void copy (const Animation *Other)=0
EAnimationTypes getType () const
 Returns the type of animation: Node-, MorphTarget- or SkeletalAnimation.
void setName (const io::stringc &Name)
 Sets the animation name.
io::stringc getName () const
 Returns the animation name.
void setFlags (s32 Flags)
s32 getFlags () const
 Returns the animation flags. By default 0.
bool playing () const
 Returns true if the animation is currently playing.
u32 getFrame () const
 Returns the current frame index.
u32 getMinFrame () const
 Returns the minimal keyframe index.
u32 getMaxFrame () const
 Returns the maximal keyframe index.
void setInterpolation (f32 Interpolation)
 Sets the new frame interpolation.
f32 getInterpolation () const
 Returns the current frame interpolation.
EAnimPlaybackModes getPlaybackMode () const
 Returns the current animation playback mode.
void setSpeed (f32 Speed)
 Sets the new playback speed (by default 1.0).
f32 getSpeed () const
const AnimationPlaybackgetPlayback () const
 Returns a constant reference to the playback state object.
AnimationPlaybackgetPlayback ()
 Returns a reference to the playback state object.
const std::list< SceneNode * > & getSceneNodeList () const
 Returns the animatable scene node list.

Protected Member Functions

 Animation (const EAnimationTypes Type)
virtual void updatePlayback (f32 Speed)
 Updates the playback process with the specified interpolation speed.
u32 getValidFrame (u32 Index) const
 Returns the valid keyframe index.
void copyBase (const Animation *Other)

Protected Attributes

u32 MinFrame_
u32 MaxFrame_
AnimationPlayback Playback_
s32 Flags_

Detailed Description

Animation base class. This is the base class for animation objects. It has the fundamental functions like playing and updating the animation.

See also:
SkeletalAnimation
NodeAnimation
MorphTargetAnimation

Constructor & Destructor Documentation

sp::scene::Animation::~Animation (  )  [virtual]
sp::scene::Animation::Animation ( const EAnimationTypes  Type  )  [protected]

Member Function Documentation

void sp::scene::Animation::addSceneNode ( SceneNode Object  )  [virtual]

Adds the specified scene node to the animatable object list. All these objects will be animated when this animation is being played using SceneGraph::updateAnimations.

virtual void sp::scene::Animation::clearKeyframes (  )  [pure virtual]
void sp::scene::Animation::clearSceneNodes (  )  [virtual]

Removes the animatable object list.

virtual void sp::scene::Animation::copy ( const Animation Other  )  [pure virtual]

Copies the whole animation.

Returns:
Pointer to the new animation object.
Note:
You have to delete this pointer by yourself!

Implemented in sp::scene::MorphTargetAnimation, sp::scene::NodeAnimation, and sp::scene::SkeletalAnimation.

void sp::scene::Animation::copyBase ( const Animation Other  )  [protected]
s32 sp::scene::Animation::getFlags (  )  const [inline]

Returns the animation flags. By default 0.

u32 sp::scene::Animation::getFrame (  )  const [inline]

Returns the current frame index.

f32 sp::scene::Animation::getInterpolation (  )  const [inline]

Returns the current frame interpolation.

virtual u32 sp::scene::Animation::getKeyframeCount (  )  const [pure virtual]

Returns the count of keyframes.

Implemented in sp::scene::MorphTargetAnimation, sp::scene::NodeAnimation, and sp::scene::SkeletalAnimation.

u32 sp::scene::Animation::getMaxFrame (  )  const [inline]

Returns the maximal keyframe index.

u32 sp::scene::Animation::getMinFrame (  )  const [inline]

Returns the minimal keyframe index.

io::stringc sp::scene::Animation::getName (  )  const [inline]

Returns the animation name.

const AnimationPlayback& sp::scene::Animation::getPlayback (  )  const [inline]

Returns a constant reference to the playback state object.

AnimationPlayback& sp::scene::Animation::getPlayback (  )  [inline]

Returns a reference to the playback state object.

EAnimPlaybackModes sp::scene::Animation::getPlaybackMode (  )  const [inline]

Returns the current animation playback mode.

const std::list<SceneNode*>& sp::scene::Animation::getSceneNodeList (  )  const [inline]

Returns the animatable scene node list.

f32 sp::scene::Animation::getSpeed (  )  const [inline]
EAnimationTypes sp::scene::Animation::getType (  )  const [inline]

Returns the type of animation: Node-, MorphTarget- or SkeletalAnimation.

u32 sp::scene::Animation::getValidFrame ( u32  Index  )  const [protected]

Returns the valid keyframe index.

virtual void sp::scene::Animation::interpolate ( u32  IndexFrom,
u32  IndexTo,
f32  Interpolation 
) [pure virtual]

Makes an interpolation between the two given frames.

Implemented in sp::scene::MorphTargetAnimation, sp::scene::NodeAnimation, and sp::scene::SkeletalAnimation.

void sp::scene::Animation::interpolateBlended ( const AnimationPlayback PlaybackFrom,
const AnimationPlayback PlaybackTo,
f32  BlendingFactor 
) [virtual]

Makes an blended interpolation between the two given playback states. This can be used for 'animation blending'.

Reimplemented in sp::scene::SkeletalAnimation.

bool sp::scene::Animation::interpolateRange ( u32  FirstFrame,
u32  LastFrame,
f32  Interpolation 
) [virtual]

Makes an interpolation over the given sequence. In this case the first frame must be smaller then the last frame!

void sp::scene::Animation::pause ( bool  IsPaused = true  )  [virtual]

Pauses or resumes the animation.

bool sp::scene::Animation::play ( const EAnimPlaybackModes  Mode,
u32  FirstFrame = 0,
u32  LastFrame = ANIM_LAST_FRAME 
) [virtual]

Plays the animation.

Parameters:
Mode,: Specifies the animation mode.
FirstFrame,: Specifies the first animation frame.
LastFrame,: Specifies the last animation frame. This can also be smaller than the first frame. By default ANIM_IGNORE_FRAME which means that all frames will be played.
Returns:
True if the animation could be played. Otherwise the first- and last frame are equal or there are only less than 2 keyframes.
bool sp::scene::Animation::playing (  )  const [inline]

Returns true if the animation is currently playing.

void sp::scene::Animation::removeSceneNode ( SceneNode Object  )  [virtual]

Removes the specified scene node from the animatable object list.

void sp::scene::Animation::setFlags ( s32  Flags  )  [inline]

Sets the animation flags.

See also:
EAnimationFlags
void sp::scene::Animation::setFrame ( u32  Index  )  [virtual]

Sets the new frame index. Should not be used while the animation is playing.

void sp::scene::Animation::setInterpolation ( f32  Interpolation  )  [inline]

Sets the new frame interpolation.

void sp::scene::Animation::setName ( const io::stringc Name  )  [inline]

Sets the animation name.

void sp::scene::Animation::setSpeed ( f32  Speed  )  [inline]

Sets the new playback speed (by default 1.0).

void sp::scene::Animation::stop ( bool  IsReset = false  )  [virtual]

Stops the animation.

virtual void sp::scene::Animation::updateAnimation ( SceneNode Node  )  [pure virtual]

Updates the animation process if currently it's playing.

Implemented in sp::scene::MorphTargetAnimation, sp::scene::NodeAnimation, and sp::scene::SkeletalAnimation.

void sp::scene::Animation::updatePlayback ( f32  Speed  )  [protected, virtual]

Updates the playback process with the specified interpolation speed.


Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines