XII Release 0.1.0
Loading...
Searching...
No Matches
xiiAnimPoseGeneratorCommandTwoBoneIK Struct Referencefinal

Accepts a single input in model space and applies two-bone IK (inverse kinematics) on it. Updates the model pose in place. More...

#include <AnimPoseGenerator.h>

Inheritance diagram for xiiAnimPoseGeneratorCommandTwoBoneIK:
[legend]

Public Attributes

xiiVec3 m_vTargetPosition
 The position for the 'end' joint to try to reach. Must be in model space of the skeleton, ie even the m_RootTransform must have been removed.
 
xiiUInt16 m_uiJointIdxStart
 Index of the top joint in a chain of three joints. The IK result may freely rotate around this joint into any (unnatural direction).
 
xiiUInt16 m_uiJointIdxMiddle
 Index of the middle joint in a chain of three joints. The IK result will bend at this joint around the joint local mid-axis.
 
xiiUInt16 m_uiJointIdxEnd
 Index of the end joint that is supposed to reach the target.
 
xiiUInt16 m_uiRecalcModelPoseToJointIdx = xiiInvalidJointIndex
 Optimization hint to prevent unnecessary recalculation of model poses for joints that get updated later again.
 
xiiVec3 m_vMidAxis = xiiVec3::MakeAxisZ()
 The local joint direction around which to bend the middle joint. Typically there is a convention to use +X, +Y or +Z to bend around.
 
xiiVec3 m_vPoleVector = xiiVec3::MakeAxisY()
 In the same space as the target position, a position that the middle joint should (roughly) point towards. Used to have bones point into the right direction, for example to make a knee point properly forwards.
 
float m_fWeight = 1.0f
 Factor between 0 and 1 for how much to apply the IK.
 
float m_fSoften = 1.0f
 Factor between 0 and 1. See OZZ for details.
 
xiiAngle m_TwistAngle
 After IK how much to rotate the chain. Seems to be redundant with the pole vector. See OZZ for details.
 
- Public Attributes inherited from xiiAnimPoseGeneratorCommand
xiiHybridArray< xiiAnimPoseGeneratorCommandID, 4 > m_Inputs
 

Additional Inherited Members

- Public Member Functions inherited from xiiAnimPoseGeneratorCommand
xiiAnimPoseGeneratorCommandID GetCommandID () const
 
xiiAnimPoseGeneratorCommandType GetType () const
 
- Protected Attributes inherited from xiiAnimPoseGeneratorCommandModelPose
xiiAnimPoseGeneratorModelPoseID m_ModelPoseOutput = xiiInvalidIndex
 
xiiAnimPoseGeneratorLocalPoseID m_LocalPoseOutput = xiiInvalidIndex
 

Detailed Description

Accepts a single input in model space and applies two-bone IK (inverse kinematics) on it. Updates the model pose in place.

The input command must be of type


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