# IRsIkHandle Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | GetIkParameters ([out] IRsNode **ppBone,[out] IRdIkLocks **ppLocks,[out] IRdIkStyle **ppStype,[out] ReIkSolverFlags *pdwFlags,[out] RtPoint *ptMovementAnchor,[out] RtPoint *ptMovementTarget,[out] RtVector3f *pRotationAnchor,[out] RtVector3f *pRotationTarget,[out] RtFloat *pfQuality)
HRESULT | SetSolverError ([in] RtVector3f *pError)
HRESULT | SetInvalidationBlocking (RtBool bBlock)
HRESULT | GetSolverError ([out] RtVector3f *pError)

## Detailed Description

IRsIkHandle is an helper interface for IK calculations.

## Member Function Documentation

HRESULT IRsIkHandle::GetIkParameters | ( | [out] IRsNode ** | ppBone,
|  | [out] IRdIkLocks ** | ppLocks,
|  | [out] IRdIkStyle ** | ppStype,
|  | [out] ReIkSolverFlags * | pdwFlags,
|  | [out] RtPoint * | ptMovementAnchor,
|  | [out] RtPoint * | ptMovementTarget,
|  | [out] RtVector3f * | pRotationAnchor,
|  | [out] RtVector3f * | pRotationTarget,
|  | [out] RtFloat * | pfQuality |
| ) |  |  |

Called by IK solver to get movement, rotation and lock parameters for the handle.
Parameters are retrieved in this way because usually IK is executed as a response to some set value or invalidate event which does not allow GetValue executions.
This method is called from Master thread, so you are allowed to read/write the pose data.

Parameters:

  | ppBone | [out] .
  | ppLocks | [out] .
  | ppStype | [out] .
  | pdwFlags | [out] .
  | ptMovementAnchor | [out] .
  | ptMovementTarget | [out] .
  | pRotationAnchor | [out] .
  | pRotationTarget | [out] .
  | pfQuality | [out] .

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRsIkHandle::SetSolverError | ( | [in] RtVector3f * | pError | ) |

Called by IK solver to set solver error to reduce error accumulation.
Error vector is defined in Bone space and defines displacement between achieved and target position.

Parameters:

  | pError | [in] .

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRsIkHandle::SetInvalidationBlocking | ( | RtBool | bBlock | ) |

Enable or disable invalidation blocking for performing updates.

Parameters:

  | bBlock | [in] Set to true to disable IK calculation as a consequence of transform matrices change.

Returns:
  return S_OK if invalidation was blocked, S_FALSe otherwise.

HRESULT IRsIkHandle::GetSolverError | ( | [out] RtVector3f * | pError | ) |

Get solver error.

Parameters:

  | pError | [out] .

Returns:
  standard HRESULT processing can be applied to returned value