![]() |
XII Release 0.1.0
|
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>
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. | |
![]() | |
xiiHybridArray< xiiAnimPoseGeneratorCommandID, 4 > | m_Inputs |
Additional Inherited Members | |
![]() | |
xiiAnimPoseGeneratorCommandID | GetCommandID () const |
xiiAnimPoseGeneratorCommandType | GetType () const |
![]() | |
xiiAnimPoseGeneratorModelPoseID | m_ModelPoseOutput = xiiInvalidIndex |
xiiAnimPoseGeneratorLocalPoseID | m_LocalPoseOutput = xiiInvalidIndex |
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