OGRE-Next
4.0.0unstable
Object-Oriented Graphics Rendering Engine
|
Represents the transform of a single object, arranged in SoA (Structure of Arrays) More...
#include <OgreBoneTransform.h>
Public Member Functions | |
BoneTransform () | |
void | advancePack () |
Advances all pointers to the next pack, i.e. More... | |
void | advancePack (size_t numAdvance) |
void | copy (const BoneTransform &inCopy) |
Copies all the scalar data from the parameter into this. More... | |
Public Attributes | |
SimpleMatrixAf4x3 *RESTRICT_ALIAS | mDerivedTransform |
Caches the full transform into an affine 4x4 matrix. More... | |
SimpleMatrixAf4x3 *RESTRICT_ALIAS | mFinalTransform |
Caches mDerivedTransform in Bone space, used for rendering. More... | |
unsigned char | mIndex |
Which of the packed values is ours. Value in range [0; 4) for SSE2. More... | |
bool *RESTRICT_ALIAS | mInheritOrientation |
Stores whether this node inherits orientation from it's parent. More... | |
bool *RESTRICT_ALIAS | mInheritScale |
Stores whether this node inherits scale from it's parent. More... | |
ArrayQuaternion *RESTRICT_ALIAS | mOrientation |
Stores the orientation of a node relative to it's parent. More... | |
Bone ** | mOwner |
The Bone that owns this BoneTransform. Ours is mOwner[mIndex]. More... | |
SimpleMatrixAf4x3 const **RESTRICT_ALIAS | mParentNodeTransform |
Points to the Node parent's pointer. More... | |
SimpleMatrixAf4x3 const **RESTRICT_ALIAS | mParentTransform |
Points to the parent's pointer. More... | |
ArrayVector3 *RESTRICT_ALIAS | mPosition |
Stores the position/translation of a node relative to its parent. More... | |
ArrayVector3 *RESTRICT_ALIAS | mScale |
Stores the scaling factor applied to a node. More... | |
Represents the transform of a single object, arranged in SoA (Structure of Arrays)
|
inline |
|
inline |
Advances all pointers to the next pack, i.e.
if we're processing 4 elements at a time, move to the next 4 elements.
References ARRAY_PACKED_REALS, mDerivedTransform, mFinalTransform, mInheritOrientation, mInheritScale, mOrientation, mOwner, mParentNodeTransform, mParentTransform, mPosition, and mScale.
|
inline |
|
inline |
Copies all the scalar data from the parameter into this.
Furthermore, it would be confusing, because it would be not clear whether those two options should memcpy memory, or rebase the pointers, hence explicit functions are much preferred.
Note that we do NOT copy the mIndex member.
References Ogre::ArrayQuaternion::getAsQuaternion(), Ogre::ArrayVector3::getAsVector3(), mDerivedTransform, mFinalTransform, mIndex, mInheritOrientation, mInheritScale, mOrientation, mOwner, mParentNodeTransform, mParentTransform, mPosition, mScale, Ogre::ArrayQuaternion::setFromQuaternion(), and Ogre::ArrayVector3::setFromVector3().
SimpleMatrixAf4x3* RESTRICT_ALIAS Ogre::BoneTransform::mDerivedTransform |
Caches the full transform into an affine 4x4 matrix.
Note it's not Array form! (It's AoS) mDerivedTransform is in object space
Referenced by Ogre::Bone::_getLocalSpaceTransform(), advancePack(), and copy().
SimpleMatrixAf4x3* RESTRICT_ALIAS Ogre::BoneTransform::mFinalTransform |
Caches mDerivedTransform in Bone space, used for rendering.
It's not Array form! (It's AoS) mFinalTransform is in "world-bone" space ready to be sent to the GPU.
Referenced by Ogre::Bone::_getFullTransform(), advancePack(), and copy().
unsigned char Ogre::BoneTransform::mIndex |
Which of the packed values is ours. Value in range [0; 4) for SSE2.
Referenced by Ogre::Bone::_getFullTransform(), Ogre::Bone::_getLocalSpaceTransform(), and copy().
bool* RESTRICT_ALIAS Ogre::BoneTransform::mInheritOrientation |
Stores whether this node inherits orientation from it's parent.
Ours is mInheritOrientation[mIndex]
Referenced by advancePack(), and copy().
bool* RESTRICT_ALIAS Ogre::BoneTransform::mInheritScale |
Stores whether this node inherits scale from it's parent.
Ours is mInheritScale[mIndex]
Referenced by advancePack(), and copy().
ArrayQuaternion* RESTRICT_ALIAS Ogre::BoneTransform::mOrientation |
Stores the orientation of a node relative to it's parent.
Referenced by advancePack(), and copy().
Bone** Ogre::BoneTransform::mOwner |
The Bone that owns this BoneTransform. Ours is mOwner[mIndex].
Referenced by advancePack(), and copy().
SimpleMatrixAf4x3 const** RESTRICT_ALIAS Ogre::BoneTransform::mParentNodeTransform |
Points to the Node parent's pointer.
Referenced by advancePack(), and copy().
SimpleMatrixAf4x3 const** RESTRICT_ALIAS Ogre::BoneTransform::mParentTransform |
Points to the parent's pointer.
Referenced by advancePack(), and copy().
ArrayVector3* RESTRICT_ALIAS Ogre::BoneTransform::mPosition |
Stores the position/translation of a node relative to its parent.
Referenced by advancePack(), and copy().
ArrayVector3* RESTRICT_ALIAS Ogre::BoneTransform::mScale |
Stores the scaling factor applied to a node.
Referenced by advancePack(), and copy().