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. More...
|
| |
| void | _enableAnimation (SkeletonAnimation *animation) |
| | Internal use. Enables given animation. Input should belong to us and not already animated. More...
|
| |
| FORCEINLINE const SimpleMatrixAf4x3 & | _getBoneFullTransform (size_t index) const |
| | Gets full transform of a bone by its index. More...
|
| |
| 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 . More...
|
| |
| void | addAnimationsFromSkeleton (const String &skelName, const String &groupName) |
| | Add all animation clips found in skelName. More...
|
| |
| SkeletonAnimation * | getAnimation (IdString name) |
| | Returns the requested animations. Throws if not found. O(N) Linear search. More...
|
| |
| const SkeletonAnimationVec & | getAnimations () const |
| | Return all animations associated with this skeleton. More...
|
| |
| Bone * | getBone (IdString boneName) |
| | Gets the bone with given name. Throws if not found. More...
|
| |
| Bone * | getBone (size_t index) |
| | Gets the bone from its index. Don't overflow!. More...
|
| |
| const SkeletonDef * | getDefinition (void) const |
| |
| size_t | getNumBones (void) const |
| | Gets the number of bones. More...
|
| |
| Node * | getParentNode (void) const |
| | Returns our parent node. May be null. More...
|
| |
| 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. More...
|
| |
| 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 *) |
| |
| void * | operator new (size_t sz, const char *file, int line, const char *func) |
| | operator new, with debug line info More...
|
| |
| void * | operator new (size_t sz) |
| |
| void * | operator new (size_t sz, void *ptr) |
| | placement operator new More...
|
| |
| void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| | array operator new, with debug line info More...
|
| |
| void * | operator new[] (size_t sz) |
| |
| void | resetToPose (void) |
| | Resets the transform of all bones to the binding pose. Manual bones are not reset. More...
|
| |
| void | setManualBone (Bone *bone, bool isManual) |
| | Sets the given node to manual. More...
|
| |
| void | setParentNode (Node *parentNode) |
| | Sets our parent node so that our bones are in World space. More...
|
| |
| void | setSceneNodeAsParentOfBone (Bone *bone, SceneNode *nodeParent) |
| | Sets a regular SceneNode to be parent of this Bone for manually controlling a bone (e.g. More...
|
| |
| 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