OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::SkeletonTrack Class Reference

#include <OgreSkeletonTrack.h>

+ Inheritance diagram for Ogre::SkeletonTrack:

Public Member Functions

 SkeletonTrack (uint32 boneBlockIdx, KfTransformArrayMemoryManager *kfTransformMemoryManager)
 
 ~SkeletonTrack ()
 
void _bakeUnusedSlots ()
 Takes all KeyFrames and repeats the KfTransforms for every unused slot by a pattern based on the number of used slots.
 
KeyFrameRigVec_getKeyFrames ()
 
void _setMaxUsedSlot (uint32 slot)
 
void addKeyFrame (Real timestamp, Real frameRate)
 
void applyKeyFrameRigAt (KeyFrameRigVec::const_iterator &inOutLastKnownKeyFrame, float frame, ArrayReal animWeight, const ArrayReal *RESTRICT_ALIAS perBoneWeights, const TransformArray &KfTransforms) const
 Applies the interpolated keyframe at the given frame to all bone transformations that are animated by this Track.
 
uint32 getBoneBlockIdx () const
 
void getKeyFrameRigAt (KeyFrameRigVec::const_iterator &inOutPrevFrame, KeyFrameRigVec::const_iterator &outNextFrame, Real frame) const
 
const KeyFrameRigVecgetKeyFrames () const
 
size_t getUsedSlots () const
 
void setKeyFrameTransform (Real frame, uint32 slot, const Vector3 &vPos, const Quaternion &qRot, const Vector3 vScale)
 
void setNumKeyFrame (size_t numKeyFrames)
 

Constructor & Destructor Documentation

◆ SkeletonTrack()

Ogre::SkeletonTrack::SkeletonTrack ( uint32 boneBlockIdx,
KfTransformArrayMemoryManager * kfTransformMemoryManager )

◆ ~SkeletonTrack()

Ogre::SkeletonTrack::~SkeletonTrack ( )

Member Function Documentation

◆ _bakeUnusedSlots()

void Ogre::SkeletonTrack::_bakeUnusedSlots ( )

Takes all KeyFrames and repeats the KfTransforms for every unused slot by a pattern based on the number of used slots.

Only useful when mUsedSlots <= (ARRAY_PACKED_REALS >> 1). Otherwise it does nothing.

◆ _getKeyFrames()

KeyFrameRigVec & Ogre::SkeletonTrack::_getKeyFrames ( )
inline

◆ _setMaxUsedSlot()

void Ogre::SkeletonTrack::_setMaxUsedSlot ( uint32 slot)
inline

◆ addKeyFrame()

void Ogre::SkeletonTrack::addKeyFrame ( Real timestamp,
Real frameRate )

◆ applyKeyFrameRigAt()

void Ogre::SkeletonTrack::applyKeyFrameRigAt ( KeyFrameRigVec::const_iterator & inOutLastKnownKeyFrame,
float frame,
ArrayReal animWeight,
const ArrayReal *RESTRICT_ALIAS perBoneWeights,
const TransformArray & KfTransforms ) const

Applies the interpolated keyframe at the given frame to all bone transformations that are animated by this Track.

Parameters
inOutLastKnownKeyFrame[in/out] Hint to this system on where to start next. If unknown (i.e. first call) set it to mKeyFrameRigs.begin() As output it will be set to the current keyframe, and should be used as input for the next call to keep keyframe searchs in constant time.
frame[in] Frame number, should be in range [0; mNumFrames]; if below zero the result will look like clamped to zero, if above mNumFrames, it result will look like clamped to mNumFrames
perBoneWeights[in] A list of per bone weights. The size of the array must be 1 (or more)
KfTransforms[out] An array with all bone transformations, sorted by parent level. The key frames are only applied to affected bones.

◆ getBoneBlockIdx()

uint32 Ogre::SkeletonTrack::getBoneBlockIdx ( ) const
inline

◆ getKeyFrameRigAt()

void Ogre::SkeletonTrack::getKeyFrameRigAt ( KeyFrameRigVec::const_iterator & inOutPrevFrame,
KeyFrameRigVec::const_iterator & outNextFrame,
Real frame ) const
inline

◆ getKeyFrames()

const KeyFrameRigVec & Ogre::SkeletonTrack::getKeyFrames ( ) const
inline

◆ getUsedSlots()

size_t Ogre::SkeletonTrack::getUsedSlots ( ) const
inline

◆ setKeyFrameTransform()

void Ogre::SkeletonTrack::setKeyFrameTransform ( Real frame,
uint32 slot,
const Vector3 & vPos,
const Quaternion & qRot,
const Vector3 vScale )

◆ setNumKeyFrame()

void Ogre::SkeletonTrack::setNumKeyFrame ( size_t numKeyFrames)

The documentation for this class was generated from the following file: