29 #ifndef __Animation_H__
30 #define __Animation_H__
91 const String& getName(
void)
const;
94 Real getLength(
void)
const;
100 void setLength(
Real len);
151 unsigned short getNumNodeTracks(
void)
const;
157 bool hasNodeTrack(
unsigned short handle)
const;
160 unsigned short getNumNumericTracks(
void)
const;
166 bool hasNumericTrack(
unsigned short handle)
const;
169 unsigned short getNumVertexTracks(
void)
const;
175 bool hasVertexTrack(
unsigned short handle)
const;
178 void destroyNodeTrack(
unsigned short handle);
181 void destroyNumericTrack(
unsigned short handle);
184 void destroyVertexTrack(
unsigned short handle);
187 void destroyAllTracks(
void);
190 void destroyAllNodeTracks(
void);
192 void destroyAllNumericTracks(
void);
194 void destroyAllVertexTracks(
void);
206 void apply(
Real timePos,
Real weight = 1.0,
Real scale = 1.0f);
218 void applyToNode(
Node* node,
Real timePos,
Real weight = 1.0,
Real scale = 1.0f);
244 void apply(
Skeleton* skeleton,
Real timePos,
float weight,
256 void apply(
Entity* entity,
Real timePos,
Real weight,
bool software,
291 void setInterpolationMode(InterpolationMode im);
297 InterpolationMode getInterpolationMode(
void)
const;
308 void setRotationInterpolationMode(RotationInterpolationMode im);
314 RotationInterpolationMode getRotationInterpolationMode(
void)
const;
323 static void setDefaultInterpolationMode(InterpolationMode im);
326 static InterpolationMode getDefaultInterpolationMode(
void);
334 static void setDefaultRotationInterpolationMode(RotationInterpolationMode im);
337 static RotationInterpolationMode getDefaultRotationInterpolationMode(
void);
356 const NumericTrackList& _getNumericTrackList(
void)
const;
363 const VertexTrackList& _getVertexTrackList(
void)
const;
388 void optimise(
bool discardIdentityNodeTracks =
true);
453 void optimiseNodeTracks(
bool discardIdentityTracks);
454 void optimiseVertexTracks(
void);
457 void buildKeyFrameTimeList(
void)
const;
map< unsigned short, NodeAnimationTrack * >::type NodeTrackList
float Real
Software floating point type.
RotationInterpolationMode
The types of rotational interpolation available.
vector< Real >::type KeyFrameTimeList
Global keyframe time list used to search global keyframe index.
InterpolationMode
The types of animation interpolation available.
Specialised AnimationTrack for dealing with generic animable values.
NodeTrackList mNodeTrackList
Node tracks, indexed by handle.
Specialised AnimationTrack for dealing with node transforms.
KeyFrameTimeList mKeyFrameTimes
ConstMapIterator< VertexTrackList > VertexTrackIterator
VertexTrackList mVertexTrackList
Vertex tracks, indexed by handle.
map< unsigned short, NumericAnimationTrack * >::type NumericTrackList
Values are interpolated along straight lines.
RotationInterpolationMode mRotationInterpolationMode
InterpolationMode mInterpolationMode
Time index object used to search keyframe at the given position.
Defines an instance of a discrete, movable object based on a Mesh.
static RotationInterpolationMode msDefaultRotationInterpolationMode
NumericTrackIterator getNumericTrackIterator(void) const
Get non-updateable iterator over node tracks.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Specialised AnimationTrack for dealing with changing vertex position information. ...
NodeTrackIterator getNodeTrackIterator(void) const
Get non-updateable iterator over node tracks.
set< ushort >::type TrackHandleList
A list of track handles.
void _keyFrameListChanged(void)
Internal method used to tell the animation that keyframe list has been changed, which may cause it to...
Summary class collecting together vertex source information.
Values are interpolated linearly.
Concrete IteratorWrapper for const access to the underlying key-value container.
ConstMapIterator< NodeTrackList > NodeTrackIterator
VertexTrackIterator getVertexTrackIterator(void) const
Get non-updateable iterator over node tracks.
NumericTrackList mNumericTrackList
Numeric tracks, indexed by handle.
VertexAnimationType
Type of vertex animation.
vector< float >::type BoneBlendMask
typedef for an array of float values used as a bone blend mask
static InterpolationMode msDefaultInterpolationMode
Class representing a general-purpose node an articulated scene graph.
A collection of Bone objects used to animate a skinned mesh.
bool mKeyFrameTimesDirty
Dirty flag indicate that keyframe time list need to rebuild.
map< unsigned short, VertexAnimationTrack * >::type VertexTrackList
ConstMapIterator< NumericTrackList > NumericTrackIterator