OGRE-Next: Ogre::BoneTransform Struct Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Ogre::BoneTransform Struct Reference

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.
void | advancePack (size_t numAdvance)
void | copy (const BoneTransform &inCopy)
| Copies all the scalar data from the parameter into this.

## Public Attributes
SimpleMatrixAf4x3 *RESTRICT_ALIAS | mDerivedTransform
| Caches the full transform into an affine 4x4 matrix.
SimpleMatrixAf4x3 *RESTRICT_ALIAS | mFinalTransform
| Caches mDerivedTransform in Bone space, used for rendering.
unsigned char | mIndex
| Which of the packed values is ours. Value in range [0; 4) for SSE2.
bool *RESTRICT_ALIAS | mInheritOrientation
| Stores whether this node inherits orientation from it's parent.
bool *RESTRICT_ALIAS | mInheritScale
| Stores whether this node inherits scale from it's parent.
ArrayQuaternion *RESTRICT_ALIAS | mOrientation
| Stores the orientation of a node relative to it's parent.
Bone ** | mOwner
| The Bone that owns this BoneTransform. Ours is mOwner[mIndex].
SimpleMatrixAf4x3 const **RESTRICT_ALIAS | mParentNodeTransform
| Points to the Node parent's pointer.
SimpleMatrixAf4x3 const **RESTRICT_ALIAS | mParentTransform
| Points to the parent's pointer.
ArrayVector3 *RESTRICT_ALIAS | mPosition
| Stores the position/translation of a node relative to its parent.
ArrayVector3 *RESTRICT_ALIAS | mScale
| Stores the scaling factor applied to a node.

## Detailed Description

Represents the transform of a single object, arranged in SoA (Structure of Arrays)

## Constructor & Destructor Documentation

## ◆ BoneTransform()

Ogre::BoneTransform::BoneTransform | ( |  | ) |
| inline

References mDerivedTransform, mFinalTransform, mIndex, mInheritOrientation, mInheritScale, mOrientation, mOwner, mParentNodeTransform, mParentTransform, mPosition, and mScale.

Referenced by copy().

## Member Function Documentation

## ◆ advancePack() [1/2]

void Ogre::BoneTransform::advancePack | ( |  | ) |
| 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.

## ◆ advancePack() [2/2]

void Ogre::BoneTransform::advancePack | ( | size_t | numAdvance | ) |
| inline

References ARRAY_PACKED_REALS, mDerivedTransform, mFinalTransform, mInheritOrientation, mInheritScale, mOrientation, mOwner, mParentNodeTransform, mParentTransform, mPosition, and mScale.

## ◆ copy()

void Ogre::BoneTransform::copy | ( | const BoneTransform & | inCopy | ) |
| inline

Copies all the scalar data from the parameter into this.

Remarks
  A normal "=" operator, or an assignment constructor BoneTransform( BoneTransform & ) wouldn't work. This is because ArrayVector3 & co. would try to copy all the packed values, while we just want the scalar ones.

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.

See also
  rebasePtrs

Note that we do NOT copy the mIndex member.

References BoneTransform(), Ogre::ArrayQuaternion::getAsQuaternion(), Ogre::ArrayVector3::getAsVector3(), mDerivedTransform, mFinalTransform, mIndex, mInheritOrientation, mInheritScale, mOrientation, mOwner, mParentNodeTransform, mParentTransform, mPosition, and mScale.

## Member Data Documentation

## ◆ mDerivedTransform

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 BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mFinalTransform

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 BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mIndex

unsigned char Ogre::BoneTransform::mIndex

Which of the packed values is ours. Value in range [0; 4) for SSE2.

Referenced by BoneTransform(), and copy().

## ◆ mInheritOrientation

bool* RESTRICT_ALIAS Ogre::BoneTransform::mInheritOrientation

Stores whether this node inherits orientation from it's parent.

Ours is mInheritOrientation[mIndex]

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mInheritScale

bool* RESTRICT_ALIAS Ogre::BoneTransform::mInheritScale

Stores whether this node inherits scale from it's parent.

Ours is mInheritScale[mIndex]

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mOrientation

ArrayQuaternion* RESTRICT_ALIAS Ogre::BoneTransform::mOrientation

Stores the orientation of a node relative to it's parent.

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mOwner

Bone** Ogre::BoneTransform::mOwner

The Bone that owns this BoneTransform. Ours is mOwner[mIndex].

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mParentNodeTransform

SimpleMatrixAf4x3 const** RESTRICT_ALIAS Ogre::BoneTransform::mParentNodeTransform

Points to the Node parent's pointer.

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mParentTransform

SimpleMatrixAf4x3 const** RESTRICT_ALIAS Ogre::BoneTransform::mParentTransform

Points to the parent's pointer.

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mPosition

ArrayVector3* RESTRICT_ALIAS Ogre::BoneTransform::mPosition

Stores the position/translation of a node relative to its parent.

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

## ◆ mScale

ArrayVector3* RESTRICT_ALIAS Ogre::BoneTransform::mScale

Stores the scaling factor applied to a node.

Referenced by BoneTransform(), advancePack(), advancePack(), and copy().

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

- OgreBoneTransform.h