Specialised AnimationTrack for dealing with changing vertex position information. More...
#include <OgreAnimationTrack.h>
Public Types | |
enum | TargetMode { TM_SOFTWARE, TM_HARDWARE } |
The target animation mode. More... | |
Public Member Functions | |
VertexAnimationTrack (Animation *parent, unsigned short handle, VertexAnimationType animType) | |
Constructor. | |
VertexAnimationTrack (Animation *parent, unsigned short handle, VertexAnimationType animType, VertexData *targetData, TargetMode target=TM_SOFTWARE) | |
Constructor, associates with target VertexData and temp buffer (for software). | |
VertexAnimationType | getAnimationType (void) const |
Get the type of vertex animation we're performing. | |
bool | getVertexAnimationIncludesNormals () const |
Whether the vertex animation (if present) includes normals. | |
virtual VertexMorphKeyFrame * | createVertexMorphKeyFrame (Real timePos) |
Creates a new morph KeyFrame and adds it to this animation at the given time index. | |
virtual VertexPoseKeyFrame * | createVertexPoseKeyFrame (Real timePos) |
Creates the single pose KeyFrame and adds it to this animation. | |
virtual void | getInterpolatedKeyFrame (const TimeIndex &timeIndex, KeyFrame *kf) const |
virtual void | apply (const TimeIndex &timeIndex, Real weight=1.0, Real scale=1.0f) |
virtual void | applyToVertexData (VertexData *data, const TimeIndex &timeIndex, Real weight=1.0, const PoseList *poseList=0) |
As the 'apply' method but applies to specified VertexData instead of associated data. | |
VertexMorphKeyFrame * | getVertexMorphKeyFrame (unsigned short index) const |
Returns the morph KeyFrame at the specified index. | |
VertexPoseKeyFrame * | getVertexPoseKeyFrame (unsigned short index) const |
Returns the pose KeyFrame at the specified index. | |
void | setAssociatedVertexData (VertexData *data) |
Sets the associated VertexData which this track will update. | |
VertexData * | getAssociatedVertexData (void) const |
Gets the associated VertexData which this track will update. | |
void | setTargetMode (TargetMode m) |
Set the target mode. | |
TargetMode | getTargetMode (void) const |
Get the target mode. | |
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. | |
VertexAnimationTrack * | _clone (Animation *newParent) const |
Clone this track (internal use only). | |
void | _applyBaseKeyFrame (const KeyFrame *base) |
Internal method to re-base the keyframes relative to a given keyframe. | |
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 | _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 void | _collectKeyFrameTimes (vector< Real >::type &keyFrameTimes) |
Internal method to collect keyframe times, in unique, ordered format. | |
virtual void | _buildKeyFrameIndexMap (const vector< Real >::type &keyFrameTimes) |
Internal method to build keyframe time index map to translate global lower bound index to local lower bound index. | |
virtual void | setListener (Listener *l) |
Set a listener for this track. | |
Animation * | getParent () const |
Returns the parent Animation object for this track. | |
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 *) |
Protected Types | |
typedef vector< KeyFrame * >::type | KeyFrameList |
typedef vector< ushort >::type | KeyFrameIndexMap |
Map used to translate global keyframe time lower bound index to local lower bound index. | |
Protected Member Functions | |
KeyFrame * | createKeyFrameImpl (Real time) |
void | applyPoseToVertexData (const Pose *pose, VertexData *data, Real influence) |
Utility method for applying pose animation. | |
virtual void | populateClone (AnimationTrack *clone) const |
Internal method for clone implementation. | |
Protected Attributes | |
VertexAnimationType | mAnimationType |
Animation type. | |
VertexData * | mTargetVertexData |
Target to animate. | |
TargetMode | mTargetMode |
Mode to apply. | |
KeyFrameList | mKeyFrames |
Animation * | mParent |
unsigned short | mHandle |
Listener * | mListener |
KeyFrameIndexMap | mKeyFrameIndexMap |
Specialised AnimationTrack for dealing with changing vertex position information.
Definition at line 479 of file OgreAnimationTrack.h.
typedef vector<ushort>::type Ogre::AnimationTrack::KeyFrameIndexMap [protected, inherited] |
Map used to translate global keyframe time lower bound index to local lower bound index.
Definition at line 249 of file OgreAnimationTrack.h.
typedef vector<KeyFrame*>::type Ogre::AnimationTrack::KeyFrameList [protected, inherited] |
Definition at line 242 of file OgreAnimationTrack.h.
The target animation mode.
TM_SOFTWARE |
Interpolate vertex positions in software. |
TM_HARDWARE |
Bind keyframe 1 to position, and keyframe 2 to a texture coordinate for interpolation in hardware. |
Definition at line 483 of file OgreAnimationTrack.h.
Ogre::VertexAnimationTrack::VertexAnimationTrack | ( | Animation * | parent, | |
unsigned short | handle, | |||
VertexAnimationType | animType | |||
) |
Constructor.
Ogre::VertexAnimationTrack::VertexAnimationTrack | ( | Animation * | parent, | |
unsigned short | handle, | |||
VertexAnimationType | animType, | |||
VertexData * | targetData, | |||
TargetMode | target = TM_SOFTWARE | |||
) |
Constructor, associates with target VertexData and temp buffer (for software).
void Ogre::VertexAnimationTrack::_applyBaseKeyFrame | ( | const KeyFrame * | base | ) | [virtual] |
Internal method to re-base the keyframes relative to a given keyframe.
Reimplemented from Ogre::AnimationTrack.
virtual void Ogre::AnimationTrack::_buildKeyFrameIndexMap | ( | const vector< Real >::type & | keyFrameTimes | ) | [virtual, inherited] |
Internal method to build keyframe time index map to translate global lower bound index to local lower bound index.
VertexAnimationTrack* Ogre::VertexAnimationTrack::_clone | ( | Animation * | newParent | ) | const |
Clone this track (internal use only).
virtual void Ogre::AnimationTrack::_collectKeyFrameTimes | ( | vector< Real >::type & | keyFrameTimes | ) | [virtual, inherited] |
Internal method to collect keyframe times, in unique, ordered format.
virtual void Ogre::AnimationTrack::_keyFrameDataChanged | ( | void | ) | const [virtual, inherited] |
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 215 of file OgreAnimationTrack.h.
virtual void Ogre::VertexAnimationTrack::apply | ( | const TimeIndex & | timeIndex, | |
Real | weight = 1.0 , |
|||
Real | scale = 1.0f | |||
) | [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. |
Implements Ogre::AnimationTrack.
void Ogre::VertexAnimationTrack::applyPoseToVertexData | ( | const Pose * | pose, | |
VertexData * | data, | |||
Real | influence | |||
) | [protected] |
Utility method for applying pose animation.
virtual void Ogre::VertexAnimationTrack::applyToVertexData | ( | VertexData * | data, | |
const TimeIndex & | timeIndex, | |||
Real | weight = 1.0 , |
|||
const PoseList * | poseList = 0 | |||
) | [virtual] |
As the 'apply' method but applies to specified VertexData instead of associated data.
Creates a new KeyFrame and adds it to this animation at the given time index.
timePos | The time from which this KeyFrame will apply. |
Create a keyframe implementation - must be overridden.
Implements Ogre::AnimationTrack.
virtual VertexMorphKeyFrame* Ogre::VertexAnimationTrack::createVertexMorphKeyFrame | ( | Real | timePos | ) | [virtual] |
Creates a new morph KeyFrame and adds it to this animation at the given time index.
timePos | The time from which this KeyFrame will apply. |
virtual VertexPoseKeyFrame* Ogre::VertexAnimationTrack::createVertexPoseKeyFrame | ( | Real | timePos | ) | [virtual] |
Creates the single pose KeyFrame and adds it to this animation.
VertexAnimationType Ogre::VertexAnimationTrack::getAnimationType | ( | void | ) | const |
Get the type of vertex animation we're performing.
Definition at line 498 of file OgreAnimationTrack.h.
VertexData* Ogre::VertexAnimationTrack::getAssociatedVertexData | ( | void | ) | const |
Gets the associated VertexData which this track will update.
Definition at line 539 of file OgreAnimationTrack.h.
unsigned short Ogre::AnimationTrack::getHandle | ( | void | ) | const [inherited] |
Get the handle associated with this track.
Definition at line 145 of file OgreAnimationTrack.h.
virtual void Ogre::VertexAnimationTrack::getInterpolatedKeyFrame | ( | const TimeIndex & | timeIndex, | |
KeyFrame * | kf | |||
) | const [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 |
Implements Ogre::AnimationTrack.
virtual KeyFrame* Ogre::AnimationTrack::getKeyFrame | ( | unsigned short | index | ) | const [virtual, inherited] |
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, inherited] |
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 in case the caller needs it. |
virtual unsigned short Ogre::AnimationTrack::getNumKeyFrames | ( | void | ) | const [virtual, inherited] |
Returns the number of keyframes in this animation.
Animation* Ogre::AnimationTrack::getParent | ( | ) | const [inherited] |
Returns the parent Animation object for this track.
Definition at line 240 of file OgreAnimationTrack.h.
TargetMode Ogre::VertexAnimationTrack::getTargetMode | ( | void | ) | const |
Get the target mode.
Definition at line 544 of file OgreAnimationTrack.h.
bool Ogre::VertexAnimationTrack::getVertexAnimationIncludesNormals | ( | ) | const |
Whether the vertex animation (if present) includes normals.
VertexMorphKeyFrame* Ogre::VertexAnimationTrack::getVertexMorphKeyFrame | ( | unsigned short | index | ) | const |
Returns the morph KeyFrame at the specified index.
VertexPoseKeyFrame* Ogre::VertexAnimationTrack::getVertexPoseKeyFrame | ( | unsigned short | index | ) | const |
Returns the pose KeyFrame at the specified index.
virtual bool Ogre::VertexAnimationTrack::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 from Ogre::AnimationTrack.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
const char * | , | |||
int | , | |||
const char * | ||||
) | [inherited] |
Definition at line 107 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
void * | ||||
) | [inherited] |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | [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 118 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | [inherited] |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz, | |
void * | ptr | |||
) | [inherited] |
placement operator new
Definition at line 78 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | [inherited] |
Definition at line 72 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz, | |
const char * | file, | |||
int | line, | |||
const char * | func | |||
) | [inherited] |
operator new, with debug line info
Definition at line 67 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | [inherited] |
Definition at line 90 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz, | |
const char * | file, | |||
int | line, | |||
const char * | func | |||
) | [inherited] |
array operator new, with debug line info
Definition at line 85 of file OgreMemoryAllocatedObject.h.
virtual void Ogre::VertexAnimationTrack::optimise | ( | void | ) | [virtual] |
Optimise the current track by removing any duplicate keyframes.
Reimplemented from Ogre::AnimationTrack.
virtual void Ogre::AnimationTrack::populateClone | ( | AnimationTrack * | clone | ) | const [protected, virtual, inherited] |
Internal method for clone implementation.
virtual void Ogre::AnimationTrack::removeAllKeyFrames | ( | void | ) | [virtual, inherited] |
Removes all the KeyFrames from this track.
virtual void Ogre::AnimationTrack::removeKeyFrame | ( | unsigned short | index | ) | [virtual, inherited] |
Removes a KeyFrame by it's index.
void Ogre::VertexAnimationTrack::setAssociatedVertexData | ( | VertexData * | data | ) |
Sets the associated VertexData which this track will update.
Definition at line 537 of file OgreAnimationTrack.h.
virtual void Ogre::AnimationTrack::setListener | ( | Listener * | l | ) | [virtual, inherited] |
Set a listener for this track.
Definition at line 237 of file OgreAnimationTrack.h.
void Ogre::VertexAnimationTrack::setTargetMode | ( | TargetMode | m | ) |
Set the target mode.
Definition at line 542 of file OgreAnimationTrack.h.
Animation type.
Definition at line 562 of file OgreAnimationTrack.h.
unsigned short Ogre::AnimationTrack::mHandle [protected, inherited] |
Definition at line 245 of file OgreAnimationTrack.h.
KeyFrameIndexMap Ogre::AnimationTrack::mKeyFrameIndexMap [protected, inherited] |
Definition at line 250 of file OgreAnimationTrack.h.
KeyFrameList Ogre::AnimationTrack::mKeyFrames [protected, inherited] |
Definition at line 243 of file OgreAnimationTrack.h.
Listener* Ogre::AnimationTrack::mListener [protected, inherited] |
Definition at line 246 of file OgreAnimationTrack.h.
Animation* Ogre::AnimationTrack::mParent [protected, inherited] |
Definition at line 244 of file OgreAnimationTrack.h.
TargetMode Ogre::VertexAnimationTrack::mTargetMode [protected] |
Mode to apply.
Definition at line 566 of file OgreAnimationTrack.h.
VertexData* Ogre::VertexAnimationTrack::mTargetVertexData [protected] |
Target to animate.
Definition at line 564 of file OgreAnimationTrack.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:37:06 2012