Interface to DAG nodes of IK handles.
Synopsis
#include <AlIKHandleNode.h>
class AlIKHandleNode : public AlDagNode
virtual ~AlIKHandleNode();
virtual AlObject* copyWrapper() const;
virtual AlObjectType type() const;
AlIKHandle* IKHandle() const;
AlIKHandle* IKHandle(AlTM&) const;
Description
All IK handles (AlIKHandle) have associated DAG nodes (AlDagNode) that define their position and orientation. The AlIKHandleNode
class provides an interface to the DAG node above an IK handle.
The position of this DAG node defines the goal position for solving inverse kinematics. The rotation of the AlDagNode has
a special function depending on the solver type of the IK handle below.
- For single-chain: the three rotational axes get mapped to a single plane rotation and two pole rotations, depending on the
rotation order defined for this IK handle. In particular, the first axis in the handle's rotation order controls the rotation
of the plane passing through the root and end-effector nodes. This axis is used to orient the single-chain solution. The second
and third axes in the rotation order reorient the up vector of the IK handle. The IK handle up vector defines the axis around
which the single-chain IK solution will flip when the end-effector crosses over the line passing through the root and the
end-effector. The IK handle rotation order can be accessed through the AlIKHandle class.
- For multi-solver: if the IK handle has an orientation goal, rotating the IK handle controls the orientation of the bone directly
above the end-effector. A solution will be found such that the local axes of the end-effector joint attempt to match the local
axes of the IK handle.
AlIKHandleNode::~AlIKHandleNode()
Description
Deletes an AlIKHandleNode wrapper object.
AlObject* AlIKHandleNode::copyWrapper() const
Description
Returns an exact duplicate of this AlIKHandleNode wrapper.
AlObjectType AlIKHandleNode::type() const
Description
Returns the class identifier kIKHandleNodeType.
AlIKHandle* AlIKHandleNode::IKHandle() const
Description
Returns a pointer to the IKHandle data structure which can be used to access the geometry of the IKHandle.
AlIKHandle* AlIKHandleNode::IKHandle(AlTM& tm) const
Description
Returns a pointer to the IKHandle data structure which can be used to access the geometry of the IKHandle. The AlTM will be
updated with the handle node’s TM.