This section describes the functions used to set up limits (Degrees of Freedom) for a character.
Functions | |
void | HIKSetMinXYZRotationfv (HIKCharacter *pCharacter, int pNodeId, const float pMin[3], int pMinActiveMask) |
Set the minimum rotation for the Node pNodeId . More... | |
void | HIKSetMinXYZRotationdv (HIKCharacter *pCharacter, int pNodeId, const double pMin[3], int pMinActiveMask) |
Set the minimum rotation for the Node pNodeId . More... | |
void | HIKSetMaxXYZRotationfv (HIKCharacter *pCharacter, int pNodeId, const float pMax[3], int pMaxActiveMask) |
Set the maximum rotation for the Node pNodeId . More... | |
void | HIKSetMaxXYZRotationdv (HIKCharacter *pCharacter, int pNodeId, const double pMax[3], int pMaxActiveMask) |
Set the maximum rotation for the Node pNodeId . More... | |
void | HIKSetRotationOrder (HIKCharacter *pCharacter, int pNodeId, eHIKRotationOrder pRotationOrder) |
Sets the order in which the axes are specified in the limits set for Node pNodeId . More... | |
void | HIKSetPreQfv (HIKCharacter *pCharacter, int pNodeId, const float pPreQ[4]) |
Apply the pre rotation pPreQ to Node pNodeId . More... | |
void | HIKSetPreQdv (HIKCharacter *pCharacter, int pNodeId, const double pPreQ[4]) |
Apply the pre rotation pPreQ to Node pNodeId . More... | |
void | HIKSetPostQfv (HIKCharacter *pCharacter, int pNodeId, const float pPostQ[4]) |
Apply the post rotation pPostQ to the Node pNodeId . More... | |
void | HIKSetPostQdv (HIKCharacter *pCharacter, int pNodeId, const double pPostQ[4]) |
Apply the post rotation pPostQ to the Node pNodeId . More... | |
void | HIKSetLimitsfv (HIKCharacter *pCharacter, int pNodeId, const float pMin[3], const float pMax[3], const float pPreQ[4], const float pPostQ[4], int pActiveMask, eHIKRotationOrder pRotationOrder) |
Set up limits for Node pNodeId . More... | |
void | HIKSetLimitsdv (HIKCharacter *pCharacter, int pNodeId, const double pMin[3], const double pMax[3], const double pPreQ[4], const double pPostQ[4], int pActiveMask, eHIKRotationOrder pRotationOrder) |
Set up limits for Node pNodeId . More... | |
void | HIKSetTranslationLimitsf (HIKCharacter *pCharacter, int pNodeId, float pMin, float pMax, bool pActive) |
Set the translation limits for Node pNodeId . More... | |
void | HIKSetTranslationLimitsd (HIKCharacter *pCharacter, int pNodeId, double pMin, double pMax, bool pActive) |
Set the translation limits for Node pNodeId . More... | |
void | HIKGetLimitsfv (const HIKCharacter *pCharacter, int pNodeId, float pMin[3], float pMax[3], float pPreQ[4], float pPostQ[4], int &pActiveMask, eHIKRotationOrder &pRotationOrder) |
Retrieve the limits set for Node pNodeId . More... | |
void | HIKGetLimitsdv (const HIKCharacter *pCharacter, int pNodeId, double pMin[3], double pMax[3], double pPreQ[4], double pPostQ[4], int &pActiveMask, eHIKRotationOrder &pRotationOrder) |
Retrieve the limits set for Node pNodeId . More... | |
enum HIKLimitActiveMask |
Lists the possible types of limits that can be activated for a Node.
See HIKSetMinXYZRotationfv(), HIKSetMaxXYZRotationfv(), and HIKSetLimitsfv().
Definition at line 650 of file humanik.h.
enum HIKRotationOrder |
Lists the possible rotation orders for the values set in the HIKSetRotationOrder() function.
Definition at line 664 of file humanik.h.
void HIKGetLimitsdv | ( | const HIKCharacter * | pCharacter, |
int | pNodeId, | ||
double | pMin[3], | ||
double | pMax[3], | ||
double | pPreQ[4], | ||
double | pPostQ[4], | ||
int & | pActiveMask, | ||
eHIKRotationOrder & | pRotationOrder | ||
) |
Retrieve the limits set for Node pNodeId
.
pCharacter | The character you want to query. |
pNodeId | The unique ID of the Node you want to query. See the HIKNodeId enumeration for possible values. |
pMin | The minimum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes are stored in this array depends on the value set for the pRotationOrder parameter. |
pMax | The maximum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes are stored in this array depends on the value set for the pRotationOrder parameter. |
pPreQ | A quaternion that defines the pre-rotation offset, which HumanIK will apply to the rotation of this Node before testing whether the orientation of the Node lies within the minimum and maximum limits. |
pPostQ | A quaternion that defines the post-rotation offset, which HumanIK will apply to the rotation of this Node after testing whether the orientation of the Node lies within the minimum and maximum limits. |
pActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. |
pRotationOrder | An element from the HIKRotationOrder enumeration that indicates the order in which the X, Y and Z axes are listed in the pMin and pMax parameters. |
void HIKGetLimitsfv | ( | const HIKCharacter * | pCharacter, |
int | pNodeId, | ||
float | pMin[3], | ||
float | pMax[3], | ||
float | pPreQ[4], | ||
float | pPostQ[4], | ||
int & | pActiveMask, | ||
eHIKRotationOrder & | pRotationOrder | ||
) |
Retrieve the limits set for Node pNodeId
.
pCharacter | The character you want to query. |
pNodeId | The unique ID of the Node you want to query. See the HIKNodeId enumeration for possible values. |
pMin | The minimum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes are stored in this array depends on the value set for the pRotationOrder parameter. |
pMax | The maximum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes are stored in this array depends on the value set for the pRotationOrder parameter. |
pPreQ | A quaternion that defines the pre-rotation offset, which HumanIK will apply to the rotation of this Node before testing whether the orientation of the Node lies within the minimum and maximum limits. |
pPostQ | A quaternion that defines the post-rotation offset, which HumanIK will apply to the rotation of this Node after testing whether the orientation of the Node lies within the minimum and maximum limits. |
pActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. |
pRotationOrder | An element from the HIKRotationOrder enumeration that indicates the order in which the X, Y and Z axes are listed in the pMin and pMax parameters. |
void HIKSetLimitsdv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const double | pMin[3], | ||
const double | pMax[3], | ||
const double | pPreQ[4], | ||
const double | pPostQ[4], | ||
int | pActiveMask, | ||
eHIKRotationOrder | pRotationOrder | ||
) |
Set up limits for Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node you want to set up. See the HIKNodeId enumeration for possible values. |
pMin | Determines the minimum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes should be represented in this array depends on the value set for the pRotationOrder parameter. |
pMax | Determines the maximum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes should be represented in this array depends on the value set for the pRotationOrder parameter. |
pPreQ | A quaternion that defines the pre-rotation offset, which HumanIK will apply to the rotation of this Node before testing whether the orientation of the Node lies within the minimum and maximum limits. |
pPostQ | A quaternion that defines the post-rotation offset, which HumanIK will apply to the rotation of this Node after testing whether the orientation of the Node lies within the minimum and maximum limits. |
pActiveMask | Bit mask that determines which axes are activated. This mask may include any one or more of the elements in the HIKLimitActiveMask enumeration. You can combine multiple values using the | operator (bitwise OR). |
pRotationOrder | An element from the HIKRotationOrder enumeration that indicates the order in which the X, Y and Z axes are listed in the pMin and pMax parameters. This rotation order also determines the order in which HumanIK calculates Euler rotations. Changing this order can help to avoid or alleviate issues with gimbal locking. HumanIK always interprets the first axis in this rotation order as the roll axis for the Node. This axis should align with the bone attached to the joint, controlling the way that bone rolls or twists around its center. |
void HIKSetLimitsfv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const float | pMin[3], | ||
const float | pMax[3], | ||
const float | pPreQ[4], | ||
const float | pPostQ[4], | ||
int | pActiveMask, | ||
eHIKRotationOrder | pRotationOrder | ||
) |
Set up limits for Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node you want to set up. See the HIKNodeId enumeration for possible values. |
pMin | Determines the minimum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes should be represented in this array depends on the value set for the pRotationOrder parameter. |
pMax | Determines the maximum rotation, in radians, that the joint can achieve around each axis. The order in which the X, Y and Z axes should be represented in this array depends on the value set for the pRotationOrder parameter. |
pPreQ | A quaternion that defines the pre-rotation offset, which HumanIK will apply to the rotation of this Node before testing whether the orientation of the Node lies within the minimum and maximum limits. |
pPostQ | A quaternion that defines the post-rotation offset, which HumanIK will apply to the rotation of this Node after testing whether the orientation of the Node lies within the minimum and maximum limits. |
pActiveMask | Bit mask that determines which axes are activated. This mask may include any one or more of the elements in the HIKLimitActiveMask enumeration. You can combine multiple values using the | operator (bitwise OR). |
pRotationOrder | An element from the HIKRotationOrder enumeration that indicates the order in which the X, Y and Z axes are listed in the pMin and pMax parameters. This rotation order also determines the order in which HumanIK calculates Euler rotations. Changing this order can help to avoid or alleviate issues with gimbal locking. HumanIK always interprets the first axis in this rotation order as the roll axis for the Node. This axis should align with the bone attached to the joint, controlling the way that bone rolls or twists around its center. |
void HIKSetMaxXYZRotationdv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const double | pMax[3], | ||
int | pMaxActiveMask | ||
) |
Set the maximum rotation for the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set a maximum rotation. See the HIKNodeId enumeration for possible values. |
pMax | The maximum rotation to allow for this Node. This is a vector in radians. |
pMaxActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. You can combine multiple values using the bitwise "OR" operator. |
void HIKSetMaxXYZRotationfv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const float | pMax[3], | ||
int | pMaxActiveMask | ||
) |
Set the maximum rotation for the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set a maximum rotation. See the HIKNodeId enumeration for possible values. |
pMax | The maximum rotation to allow for this Node. This is a vector in radians. |
pMaxActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. You can combine multiple values using the bitwise "OR" operator. |
void HIKSetMinXYZRotationdv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const double | pMin[3], | ||
int | pMinActiveMask | ||
) |
Set the minimum rotation for the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set a minimum rotation. See the HIKNodeId enumeration for possible values. |
pMin | The minimum rotation to allow for this Node. This is a vector in radians. |
pMinActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. You can combine multiple values using the bitwise "OR" operator. |
void HIKSetMinXYZRotationfv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const float | pMin[3], | ||
int | pMinActiveMask | ||
) |
Set the minimum rotation for the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set a minimum rotation. See the HIKNodeId enumeration for possible values. |
pMin | The minimum rotation to allow for this Node. This is a vector in radians. |
pMinActiveMask | Bit mask that determines which axes are activated. See the HIKLimitActiveMask enumeration for possible values. You can combine multiple values using the bitwise "OR" operator. |
void HIKSetPostQdv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const double | pPostQ[4] | ||
) |
Apply the post rotation pPostQ
to the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set the post rotation. See the HIKNodeId enumeration for possible values. |
pPostQ | The post rotation to apply. This is a quaternion that must be normalized. |
void HIKSetPostQfv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const float | pPostQ[4] | ||
) |
Apply the post rotation pPostQ
to the Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set the post rotation. See the HIKNodeId enumeration for possible values. |
pPostQ | The post rotation to apply. This is a quaternion that must be normalized. |
void HIKSetPreQdv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const double | pPreQ[4] | ||
) |
Apply the pre rotation pPreQ
to Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set the pre rotation. See the HIKNodeId enumeration for possible values. |
pPreQ | The pre rotation to apply. This is a quaternion that must be normalized. |
void HIKSetPreQfv | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
const float | pPreQ[4] | ||
) |
Apply the pre rotation pPreQ
to Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set the pre rotation. See the HIKNodeId enumeration for possible values. |
pPreQ | The pre rotation to apply. This is a quaternion that must be normalized. |
void HIKSetRotationOrder | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
eHIKRotationOrder | pRotationOrder | ||
) |
Sets the order in which the axes are specified in the limits set for Node pNodeId
.
pCharacter | The character you want to set up. |
pNodeId | The unique ID of the Node for which you want to set the rotation order. See the HIKNodeId enumeration for possible values. |
pRotationOrder | The rotation order to set. See the HIKRotationOrder enumeration for possible values. |
void HIKSetTranslationLimitsd | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
double | pMin, | ||
double | pMax, | ||
bool | pActive | ||
) |
Set the translation limits for Node pNodeId
.
pCharacter | The character you want to set the translation limits on. |
pNodeId | The unique ID of the Node you want to set. See the HIKNodeId enumeration for possible values. |
pMin | The minimum length that the joint can squash to. |
pMax | The maximum length that the joint can stretch to. |
pActive | Indicates whether translation limits sjhould be activated or not for this joint. |
void HIKSetTranslationLimitsf | ( | HIKCharacter * | pCharacter, |
int | pNodeId, | ||
float | pMin, | ||
float | pMax, | ||
bool | pActive | ||
) |
Set the translation limits for Node pNodeId
.
pCharacter | The character you want to set the translation limits on. |
pNodeId | The unique ID of the Node you want to set. See the HIKNodeId enumeration for possible values. |
pMin | The minimum length that the joint can squash to. |
pMax | The maximum length that the joint can stretch to. |
pActive | Indicates whether translation limits sjhould be activated or not for this joint. |