![]() |
OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
Represents the instance of a Skeletal animation based on its definition. More...
#include <OgreSkeletonAnimation.h>
Public Member Functions | |
SkeletonAnimation (const SkeletonAnimationDef *definition, const FastArray< size_t > *slotStarts, SkeletonInstance *owner) | |
void | _applyAnimation (const TransformArray &boneTransforms) |
void | _boneMemoryRebased (const FastArray< size_t > &oldSlotStarts) |
Shifts the values of mBoneWeights to new locations because the bones' mIndex may have changed. | |
void | _initialize (void) |
Internal function that initializes a lot of structures that can't be done in the constructor due to how SkeletonInstance is created/pushed in a vector. | |
void | _swapBoneWeightsUniquePtr (RawSimdUniquePtr< ArrayReal, MEMCATEGORY_ANIMATION > &inOutBoneWeights) |
void | addFrame (Real frames) |
Plays the animation forward (or backwards if negative) | |
void | addTime (Real time) |
Plays the animation forward (or backwards if negative) | |
Real | getBoneWeight (IdString boneName) const |
Gets the current per-bone weight of a particular bone. | |
Real * | getBoneWeightPtr (IdString boneName) |
Gets a pointer current per-bone weight of a particular bone. | |
Real | getCurrentFrame (void) const |
Gets the current animation frame, in frames. | |
Real | getCurrentTime (void) const |
Gets the current animation time, in seconds. Prefer using getCurrentFrame. | |
const SkeletonAnimationDef * | getDefinition (void) const |
Real | getDuration (void) const |
Gets animation length, in seconds. | |
bool | getEnabled (void) const |
bool | getLoop (void) const |
Returns current loop setting. | |
IdString | getName (void) const |
Real | getNumFrames (void) const |
Gets the frame count. | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
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 *ptr) |
placement operator new | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
void | setBoneWeight (IdString boneName, Real weight) |
Sets the per-bone weight to a particular bone. | |
void | setEnabled (bool bEnable) |
Enables or disables this animation. A disabled animation won't be processed at all. | |
void | setFrame (Real frame) |
Sets the animation to a particular frame. | |
void | setLoop (bool bLoop) |
Loop setting. | |
void | setTime (Real time) |
Sets the animation to a particular time. | |
Public Attributes | |
bool | mEnabled |
Real | mFrameRate |
bool | mLoop |
SkeletonInstance * | mOwner |
FastArray< size_t > const * | mSlotStarts |
Real | mWeight |
Represents the instance of a Skeletal animation based on its definition.
Ogre::SkeletonAnimation::SkeletonAnimation | ( | const SkeletonAnimationDef * | definition, |
const FastArray< size_t > * | slotStarts, | ||
SkeletonInstance * | owner | ||
) |
void Ogre::SkeletonAnimation::_applyAnimation | ( | const TransformArray & | boneTransforms | ) |
Shifts the values of mBoneWeights to new locations because the bones' mIndex may have changed.
Needed when our BoneMemoryManager performs a cleanup or similar memory change.
oldSlotStarts | Array with the contents old contents of SkeletonInstance::mSlotStarts, one entry per node hirearchy depth level |
Internal function that initializes a lot of structures that can't be done in the constructor due to how SkeletonInstance is created/pushed in a vector.
If you're not an Ogre dev, don't call this directly.
void Ogre::SkeletonAnimation::_swapBoneWeightsUniquePtr | ( | RawSimdUniquePtr< ArrayReal, MEMCATEGORY_ANIMATION > & | inOutBoneWeights | ) |
Plays the animation forward (or backwards if negative)
frames | Frames to advance, in frames |
Plays the animation forward (or backwards if negative)
time | Time to advance, in seconds |
Gets the current per-bone weight of a particular bone.
boneName | The name of the bone to get. If this animation doesn't affect that bone (or the name is invalid) this function returns 0. |
Gets a pointer current per-bone weight of a particular bone.
Useful if you intend to have read/write access to this value very often.
If returnPtr is the return value to bone[0], do not assume that returnPtr+1 affects bone[1] or even any other bone. Doing so the behavior is underfined and most likely you could be affecting the contents of other SkeletonInstances.
boneName | The name of the bone to get. If this animation doesn't affect that bone (or the name is invalid) this function returns a null pointer. |
Gets the current animation frame, in frames.
Gets the current animation time, in seconds. Prefer using getCurrentFrame.
|
inline |
Returns current loop setting.
@See setLoop.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
Sets the per-bone weight to a particular bone.
Useful for fine control over animation strength on a set of nodes (i.e. an arm)
boneName | The name of the bone to set. If this animation doesn't affect that bone (or the name is invalid) this function does nothing. |
weight | Weight to apply to this particular bone. Note that the animation multiplies this value against the global mWeight to obtain the final weight. Normal range is between [0; 1] but not necessarily. |
Enables or disables this animation. A disabled animation won't be processed at all.
Sets the animation to a particular frame.
frames | Frame to set to, in frames |
Loop setting.
Looped animations will wrap back to zero when reaching the animation length or go back to the animation length if playing backwards. Non-looped animations will stop at the animation length (or at 0 if backwards) but won't be disabled.
Sets the animation to a particular time.
time | Time to set to, in seconds |
bool Ogre::SkeletonAnimation::mEnabled |
Real Ogre::SkeletonAnimation::mFrameRate |
bool Ogre::SkeletonAnimation::mLoop |
SkeletonInstance* Ogre::SkeletonAnimation::mOwner |
Real Ogre::SkeletonAnimation::mWeight |