OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::SkeletonDef Class Reference

#include <OgreSkeletonDef.h>

+ Inheritance diagram for Ogre::SkeletonDef:

Classes

struct  BoneData
 
struct  DepthLevelInfo
 

Public Types

typedef vector< BoneData >::type BoneDataVec
 
typedef vector< uint32 >::type BoneToSlotVec
 
typedef vector< DepthLevelInfo >::type DepthLevelInfoVec
 
typedef map< uint32, uint32 >::type IndexToIndexMap
 

Public Member Functions

 SkeletonDef (const v1::Skeleton *originalSkeleton, Real frameRate)
 Constructs this Skeleton based on the old format's Skeleton. More...
 
const SkeletonAnimationDefVecgetAnimationDefs () const
 
const KfTransformgetBindPose () const
 
const BoneDataVecgetBones () const
 
void getBonesPerDepth (vector< size_t >::type &out) const
 
const BoneToSlotVecgetBoneToSlot () const
 
const DepthLevelInfoVecgetDepthLevelInfo () const
 
const StringgetNameStr () const
 
size_t getNumberOfBoneBlocks (size_t numLevels) const
 Returns the total number of bone blocks to reach the given level. More...
 
const RawSimdUniquePtr< ArrayMatrixAf4x3, MEMCATEGORY_ANIMATION > & getReverseBindPose () const
 
const IndexToIndexMapgetSlotToBone () const
 

Static Public Member Functions

static uint32 blockIdxToSlotStart (uint32 blockIdx)
 Convertes a block index back to a slot index. More...
 
static uint32 slotToBlockIdx (uint32 slotIdx)
 Converts a "Slot index" to a block index. More...
 

Member Typedef Documentation

◆ BoneDataVec

◆ BoneToSlotVec

◆ DepthLevelInfoVec

◆ IndexToIndexMap

Constructor & Destructor Documentation

◆ SkeletonDef()

Ogre::SkeletonDef::SkeletonDef ( const v1::Skeleton originalSkeleton,
Real  frameRate 
)

Constructs this Skeleton based on the old format's Skeleton.

The frameRate parameter indicates at which framerate it was recorded (i.e. 15fps, 25fps) so that all keyframe time values end up rounded.

Remarks
If the framerate information has been lost, set it to 1.

Member Function Documentation

◆ blockIdxToSlotStart()

static uint32 Ogre::SkeletonDef::blockIdxToSlotStart ( uint32  blockIdx)
inlinestatic

Convertes a block index back to a slot index.

However the slot points at the start of the SIMD block.

See also
slotToBlockIdx and
mSlotToBone
Parameters
blockIdxThe block index
Returns
The slot index.

References ARRAY_PACKED_REALS.

◆ getAnimationDefs()

const SkeletonAnimationDefVec& Ogre::SkeletonDef::getAnimationDefs ( ) const
inline

◆ getBindPose()

const KfTransform* Ogre::SkeletonDef::getBindPose ( ) const
inline

◆ getBones()

const BoneDataVec& Ogre::SkeletonDef::getBones ( ) const
inline

◆ getBonesPerDepth()

void Ogre::SkeletonDef::getBonesPerDepth ( vector< size_t >::type &  out) const

◆ getBoneToSlot()

const BoneToSlotVec& Ogre::SkeletonDef::getBoneToSlot ( ) const
inline
See also
mBoneToSlot

◆ getDepthLevelInfo()

const DepthLevelInfoVec& Ogre::SkeletonDef::getDepthLevelInfo ( ) const
inline

◆ getNameStr()

const String& Ogre::SkeletonDef::getNameStr ( ) const
inline

◆ getNumberOfBoneBlocks()

size_t Ogre::SkeletonDef::getNumberOfBoneBlocks ( size_t  numLevels) const

Returns the total number of bone blocks to reach the given level.

i.e On SSE2, If the skeleton has 1 root node, 3 children, and 5 children of children; then the total number of blocks is 1 + 1 + 2 = 4

Parameters
numLevelsLevel depth to reach. Must be in range [0; mDepthLevelInfoVec.size]

◆ getReverseBindPose()

const RawSimdUniquePtr<ArrayMatrixAf4x3, MEMCATEGORY_ANIMATION>& Ogre::SkeletonDef::getReverseBindPose ( ) const
inline

◆ getSlotToBone()

const IndexToIndexMap& Ogre::SkeletonDef::getSlotToBone ( ) const
inline
See also
mSlotToBone

◆ slotToBlockIdx()

static uint32 Ogre::SkeletonDef::slotToBlockIdx ( uint32  slotIdx)
inlinestatic

Converts a "Slot index" to a block index.

See also
mSlotToBone Slot indices contain the information about the bone's depth level in the hierarchy, and an index to the exact bone. Block indices also contain the depth level, but an index to the start of the SIMD block.
Remarks
Converting to a "block index" is a lossy process. Information pointing to the individual bone is lost; and only the start of the block is preserved. e.g. if ARRAY_PACKED_REALS = 4, and the slot index is pointing to the slot 3; the block index will reset the slot to 0. If the slot index is pointing to slot 6, the index will reset to slot 4, which is the first in the SIMD block
Parameters
slotIdxThe slot index.
Returns
The block index.

References ARRAY_PACKED_REALS.


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