Instance of a Skeleton, main external interface for retrieving bone positions and applying animations.
More...
|
| SkeletonInstance (const SkeletonDef *skeletonDef, BoneMemoryManager *boneMemoryManager) |
|
| ~SkeletonInstance () |
|
void | _decrementRefCount (void) |
|
void | _disableAnimation (SkeletonAnimation *animation) |
| Internal use. Disables given animation. Input should belong to us and already being animated.
|
|
void | _enableAnimation (SkeletonAnimation *animation) |
| Internal use. Enables given animation. Input should belong to us and not already animated.
|
|
FORCEINLINE const SimpleMatrixAf4x3 & | _getBoneFullTransform (size_t index) const |
| Gets full transform of a bone by its index.
|
|
const void * | _getMemoryBlock (void) const |
|
const void * | _getMemoryUniqueOffset (void) const |
|
uint16 | _getRefCount (void) const |
|
const TransformArray & | _getTransformArray () const |
|
void | _incrementRefCount (void) |
|
void | _updateBoneStartTransforms (void) |
| Updates the contents of @mBoneStartTransforms.
|
|
void | addAnimationsFromSkeleton (const String &skelName, const String &groupName) |
| Add all animation clips found in skelName.
|
|
SkeletonAnimation * | getAnimation (IdString name) |
| Returns the requested animations. Throws if not found. O(N) Linear search.
|
|
const SkeletonAnimationVec & | getAnimations () const |
| Return all animations associated with this skeleton.
|
|
Bone * | getBone (IdString boneName) |
| Gets the bone with given name. Throws if not found.
|
|
Bone * | getBone (size_t index) |
| Gets the bone from its index. Don't overflow!.
|
|
const SkeletonDef * | getDefinition (void) const |
|
size_t | getNumBones (void) const |
| Gets the number of bones.
|
|
Node * | getParentNode (void) const |
| Returns our parent node. May be null.
|
|
void | getTransforms (SimpleMatrixAf4x3 *RESTRICT_ALIAS outTransform, const FastArray< unsigned short > &usedBones) const |
|
bool | hasAnimation (IdString name) const |
|
bool | hasBone (IdString name) const |
|
bool | isManualBone (Bone *bone) |
| Returns true if the bone is manually controlled.
|
|
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 | resetToPose (void) |
| Resets the transform of all bones to the binding pose. Manual bones are not reset.
|
|
void | setManualBone (Bone *bone, bool isManual) |
| Sets the given node to manual.
|
|
void | setParentNode (Node *parentNode) |
| Sets our parent node so that our bones are in World space.
|
|
void | setSceneNodeAsParentOfBone (Bone *bone, SceneNode *nodeParent) |
| Sets a regular SceneNode to be parent of this Bone for manually controlling a bone (e.g.
|
|
void | update (void) |
|
Instance of a Skeleton, main external interface for retrieving bone positions and applying animations.
- I.e. if there is 1 root bone with 6 child bones; the root node will be animated solo, the first 4 child bones will be animated at the same time, and the 2 last bones will be animated together in the next loop iteration.
- Note however, when updating bones in the hierarchy to obtain the derived transforms (rather than animating), the root bone will be updated together using SIMD with the root bones from 3 other SkeletonInstances that share the same SkeletonDef. Only animating them has this restriction. The animation system won't be able to "share" though, if the SkeletonDef had 3 root nodes instead of 1; because we need to put them in a SIMD block in a repeating pattern And repeating 3 bones at least twice gives 6 bones, which doesn't fit in SSE2 (though it should in AVX, where ARRAY_PACKED_REALS = 8)
To those interested in the original repository of OgreAnimation to obtain full history, go to: https://bitbucket.org/dark_sylinc/ogreanimation