HIK2014/humanik/humanik.h File Reference

humanik.h File Reference
#include <stddef.h>

Classes

struct  sHIKCharacterDefinition
 
struct  sHIKDataDescription
 
struct  sHIKDataDescriptionMatrix
 
struct  sHIKEffectorDataDescription
 
struct  sHIKEffectorDataDescriptionMatrix
 

Macros

#define HUMANIK_VERSION_MAJOR   2014
 
#define HUMANIK_VERSION_MINOR   2
 
#define HUMANIK_VERSION_THIRD   2
 
#define HIK_EXPAND_TO_STRING_(x)   #x
 
#define HIK_EXPAND_TO_STRING(x)   HIK_EXPAND_TO_STRING_(x)
 
#define HUMANIK_VERSION_STRING
 
#define HIK_EXPORT   extern
 
#define HIK_API
 

Typedefs

typedef void *(* HIKMalloc) (size_t)
 Memory allocator function. More...
 
typedef void(* HIKFree) (void *)
 Memory de-allocator function. More...
 
typedef struct sHIKCharacterDefinition HIKCharacterDefinition
 
typedef enum HIKRotationOrder eHIKRotationOrder
 see enum HIKRotationOrder More...
 
typedef enum HIKMiddleJoint eHIKMiddleJoint
 see enum HIKMiddleJoint More...
 
typedef enum HIKToken eHIKToken
 see enum HIKToken More...
 
typedef struct sHIKDataDescription HIKDataDescription
 
typedef struct sHIKDataDescriptionMatrix HIKDataDescriptionMatrix
 
typedef struct sHIKEffectorDataDescription HIKEffectorDataDescription
 
typedef struct sHIKEffectorDataDescriptionMatrix HIKEffectorDataDescriptionMatrix
 

Enumerations

enum  HIKNodeId {
  ReferenceNodeId = 0, HipsNodeId, LeftHipNodeId, LeftKneeNodeId,
  LeftAnkleNodeId, RightHipNodeId, RightKneeNodeId, RightAnkleNodeId,
  WaistNodeId, LeftShoulderNodeId, LeftElbowNodeId, LeftWristNodeId,
  RightShoulderNodeId, RightElbowNodeId, RightWristNodeId, HeadNodeId,
  LeftFootNodeId, RightFootNodeId, LeftCollarNodeId, RightCollarNodeId,
  NeckNodeId, LeftHandNodeId, RightHandNodeId, Spine1NodeId,
  Spine2NodeId, Spine3NodeId, Spine4NodeId, Spine5NodeId,
  Spine6NodeId, Spine7NodeId, Spine8NodeId, Spine9NodeId,
  Neck1NodeId, Neck2NodeId, Neck3NodeId, Neck4NodeId,
  Neck5NodeId, Neck6NodeId, Neck7NodeId, Neck8NodeId,
  Neck9NodeId, LeftHipRollNodeId, LeftKneeRollNodeId, RightHipRollNodeId,
  RightKneeRollNodeId, LeftShoulderRollNodeId, LeftElbowRollNodeId, RightShoulderRollNodeId,
  RightElbowRollNodeId, HipsTranslationId, LeftThumbANodeId, LeftThumbBNodeId,
  LeftThumbCNodeId, LeftThumbDNodeId, LeftIndexANodeId, LeftIndexBNodeId,
  LeftIndexCNodeId, LeftIndexDNodeId, LeftMiddleANodeId, LeftMiddleBNodeId,
  LeftMiddleCNodeId, LeftMiddleDNodeId, LeftRingANodeId, LeftRingBNodeId,
  LeftRingCNodeId, LeftRingDNodeId, LeftPinkyANodeId, LeftPinkyBNodeId,
  LeftPinkyCNodeId, LeftPinkyDNodeId, LeftExtraFingerANodeId, LeftExtraFingerBNodeId,
  LeftExtraFingerCNodeId, LeftExtraFingerDNodeId, RightThumbANodeId, RightThumbBNodeId,
  RightThumbCNodeId, RightThumbDNodeId, RightIndexANodeId, RightIndexBNodeId,
  RightIndexCNodeId, RightIndexDNodeId, RightMiddleANodeId, RightMiddleBNodeId,
  RightMiddleCNodeId, RightMiddleDNodeId, RightRingANodeId, RightRingBNodeId,
  RightRingCNodeId, RightRingDNodeId, RightPinkyANodeId, RightPinkyBNodeId,
  RightPinkyCNodeId, RightPinkyDNodeId, RightExtraFingerANodeId, RightExtraFingerBNodeId,
  RightExtraFingerCNodeId, RightExtraFingerDNodeId, LeftFootThumbANodeId, LeftFootThumbBNodeId,
  LeftFootThumbCNodeId, LeftFootThumbDNodeId, LeftFootIndexANodeId, LeftFootIndexBNodeId,
  LeftFootIndexCNodeId, LeftFootIndexDNodeId, LeftFootMiddleANodeId, LeftFootMiddleBNodeId,
  LeftFootMiddleCNodeId, LeftFootMiddleDNodeId, LeftFootRingANodeId, LeftFootRingBNodeId,
  LeftFootRingCNodeId, LeftFootRingDNodeId, LeftFootPinkyANodeId, LeftFootPinkyBNodeId,
  LeftFootPinkyCNodeId, LeftFootPinkyDNodeId, LeftExtraFootFingerANodeId, LeftExtraFootFingerBNodeId,
  LeftExtraFootFingerCNodeId, LeftExtraFootFingerDNodeId, RightFootThumbANodeId, RightFootThumbBNodeId,
  RightFootThumbCNodeId, RightFootThumbDNodeId, RightFootIndexANodeId, RightFootIndexBNodeId,
  RightFootIndexCNodeId, RightFootIndexDNodeId, RightFootMiddleANodeId, RightFootMiddleBNodeId,
  RightFootMiddleCNodeId, RightFootMiddleDNodeId, RightFootRingANodeId, RightFootRingBNodeId,
  RightFootRingCNodeId, RightFootRingDNodeId, RightFootPinkyANodeId, RightFootPinkyBNodeId,
  RightFootPinkyCNodeId, RightFootPinkyDNodeId, RightExtraFootFingerANodeId, RightExtraFootFingerBNodeId,
  RightExtraFootFingerCNodeId, RightExtraFootFingerDNodeId, LeftThumbInNodeId, LeftIndexInNodeId,
  LeftMiddleInNodeId, LeftRingInNodeId, LeftPinkyInNodeId, LeftExtraFingerInNodeId,
  RightThumbInNodeId, RightIndexInNodeId, RightMiddleInNodeId, RightRingInNodeId,
  RightPinkyInNodeId, RightExtraFingerInNodeId, LeftFootThumbInNodeId, LeftFootIndexInNodeId,
  LeftFootMiddleInNodeId, LeftFootRingInNodeId, LeftFootPinkyInNodeId, LeftExtraFootFingerInNodeId,
  RightFootThumbInNodeId, RightFootIndexInNodeId, RightFootMiddleInNodeId, RightFootRingInNodeId,
  RightFootPinkyInNodeId, RightExtraFootFingerInNodeId, LeftCollarExtraNodeId, RightCollarExtraNodeId,
  LastNodeId, ReferenceNodeId = 0, HipsNodeId, LeftHipNodeId,
  LeftKneeNodeId, LeftAnkleNodeId, RightHipNodeId, RightKneeNodeId,
  RightAnkleNodeId, WaistNodeId, LeftShoulderNodeId, LeftElbowNodeId,
  LeftWristNodeId, RightShoulderNodeId, RightElbowNodeId, RightWristNodeId,
  HeadNodeId, LeftFootNodeId, RightFootNodeId, LeftCollarNodeId,
  RightCollarNodeId, NeckNodeId, LeftHandNodeId, RightHandNodeId,
  Spine1NodeId, Spine2NodeId, Spine3NodeId, Spine4NodeId,
  Spine5NodeId, Spine6NodeId, Spine7NodeId, Spine8NodeId,
  Spine9NodeId, Neck1NodeId, Neck2NodeId, Neck3NodeId,
  Neck4NodeId, Neck5NodeId, Neck6NodeId, Neck7NodeId,
  Neck8NodeId, Neck9NodeId, LeftHipRollNodeId, LeftKneeRollNodeId,
  RightHipRollNodeId, RightKneeRollNodeId, LeftShoulderRollNodeId, LeftElbowRollNodeId,
  RightShoulderRollNodeId, RightElbowRollNodeId, HipsTranslationId, LeftThumbANodeId,
  LeftThumbBNodeId, LeftThumbCNodeId, LeftThumbDNodeId, LeftIndexANodeId,
  LeftIndexBNodeId, LeftIndexCNodeId, LeftIndexDNodeId, LeftMiddleANodeId,
  LeftMiddleBNodeId, LeftMiddleCNodeId, LeftMiddleDNodeId, LeftRingANodeId,
  LeftRingBNodeId, LeftRingCNodeId, LeftRingDNodeId, LeftPinkyANodeId,
  LeftPinkyBNodeId, LeftPinkyCNodeId, LeftPinkyDNodeId, LeftExtraFingerANodeId,
  LeftExtraFingerBNodeId, LeftExtraFingerCNodeId, LeftExtraFingerDNodeId, RightThumbANodeId,
  RightThumbBNodeId, RightThumbCNodeId, RightThumbDNodeId, RightIndexANodeId,
  RightIndexBNodeId, RightIndexCNodeId, RightIndexDNodeId, RightMiddleANodeId,
  RightMiddleBNodeId, RightMiddleCNodeId, RightMiddleDNodeId, RightRingANodeId,
  RightRingBNodeId, RightRingCNodeId, RightRingDNodeId, RightPinkyANodeId,
  RightPinkyBNodeId, RightPinkyCNodeId, RightPinkyDNodeId, RightExtraFingerANodeId,
  RightExtraFingerBNodeId, RightExtraFingerCNodeId, RightExtraFingerDNodeId, LeftFootThumbANodeId,
  LeftFootThumbBNodeId, LeftFootThumbCNodeId, LeftFootThumbDNodeId, LeftFootIndexANodeId,
  LeftFootIndexBNodeId, LeftFootIndexCNodeId, LeftFootIndexDNodeId, LeftFootMiddleANodeId,
  LeftFootMiddleBNodeId, LeftFootMiddleCNodeId, LeftFootMiddleDNodeId, LeftFootRingANodeId,
  LeftFootRingBNodeId, LeftFootRingCNodeId, LeftFootRingDNodeId, LeftFootPinkyANodeId,
  LeftFootPinkyBNodeId, LeftFootPinkyCNodeId, LeftFootPinkyDNodeId, LeftExtraFootFingerANodeId,
  LeftExtraFootFingerBNodeId, LeftExtraFootFingerCNodeId, LeftExtraFootFingerDNodeId, RightFootThumbANodeId,
  RightFootThumbBNodeId, RightFootThumbCNodeId, RightFootThumbDNodeId, RightFootIndexANodeId,
  RightFootIndexBNodeId, RightFootIndexCNodeId, RightFootIndexDNodeId, RightFootMiddleANodeId,
  RightFootMiddleBNodeId, RightFootMiddleCNodeId, RightFootMiddleDNodeId, RightFootRingANodeId,
  RightFootRingBNodeId, RightFootRingCNodeId, RightFootRingDNodeId, RightFootPinkyANodeId,
  RightFootPinkyBNodeId, RightFootPinkyCNodeId, RightFootPinkyDNodeId, RightExtraFootFingerANodeId,
  RightExtraFootFingerBNodeId, RightExtraFootFingerCNodeId, RightExtraFootFingerDNodeId, LeftThumbInNodeId,
  LeftIndexInNodeId, LeftMiddleInNodeId, LeftRingInNodeId, LeftPinkyInNodeId,
  LeftExtraFingerInNodeId, RightThumbInNodeId, RightIndexInNodeId, RightMiddleInNodeId,
  RightRingInNodeId, RightPinkyInNodeId, RightExtraFingerInNodeId, LeftFootThumbInNodeId,
  LeftFootIndexInNodeId, LeftFootMiddleInNodeId, LeftFootRingInNodeId, LeftFootPinkyInNodeId,
  LeftExtraFootFingerInNodeId, RightFootThumbInNodeId, RightFootIndexInNodeId, RightFootMiddleInNodeId,
  RightFootRingInNodeId, RightFootPinkyInNodeId, RightExtraFootFingerInNodeId, LeftCollarExtraNodeId,
  RightCollarExtraNodeId, LeafLeftHipRollNode1Id, LeafLeftKneeRollNode1Id, LeafRightHipRollNode1Id,
  LeafRightKneeRollNode1Id, LeafLeftShoulderRollNode1Id, LeafLeftElbowRollNode1Id, LeafRightShoulderRollNode1Id,
  LeafRightElbowRollNode1Id, LeafLeftHipRollNode2Id, LeafLeftKneeRollNode2Id, LeafRightHipRollNode2Id,
  LeafRightKneeRollNode2Id, LeafLeftShoulderRollNode2Id, LeafLeftElbowRollNode2Id, LeafRightShoulderRollNode2Id,
  LeafRightElbowRollNode2Id, LeafLeftHipRollNode3Id, LeafLeftKneeRollNode3Id, LeafRightHipRollNode3Id,
  LeafRightKneeRollNode3Id, LeafLeftShoulderRollNode3Id, LeafLeftElbowRollNode3Id, LeafRightShoulderRollNode3Id,
  LeafRightElbowRollNode3Id, LeafLeftHipRollNode4Id, LeafLeftKneeRollNode4Id, LeafRightHipRollNode4Id,
  LeafRightKneeRollNode4Id, LeafLeftShoulderRollNode4Id, LeafLeftElbowRollNode4Id, LeafRightShoulderRollNode4Id,
  LeafRightElbowRollNode4Id, LeafLeftHipRollNode5Id, LeafLeftKneeRollNode5Id, LeafRightHipRollNode5Id,
  LeafRightKneeRollNode5Id, LeafLeftShoulderRollNode5Id, LeafLeftElbowRollNode5Id, LeafRightShoulderRollNode5Id,
  LeafRightElbowRollNode5Id, LastNodeId
}
 Lists all Nodes known to HumanIK, used to set up and access data for . More...
 
enum  HIKEffectorId {
  HipsEffectorId = 0, LeftAnkleEffectorId, RightAnkleEffectorId, LeftWristEffectorId,
  RightWristEffectorId, LeftKneeEffectorId, RightKneeEffectorId, LeftElbowEffectorId,
  RightElbowEffectorId, ChestOriginEffectorId, ChestEndEffectorId, LeftFootEffectorId,
  RightFootEffectorId, LeftShoulderEffectorId, RightShoulderEffectorId, HeadEffectorId,
  LeftHipEffectorId, RightHipEffectorId, LeftHandEffectorId, RightHandEffectorId,
  LeftHandThumbEffectorId, LeftHandIndexEffectorId, LeftHandMiddleEffectorId, LeftHandRingEffectorId,
  LeftHandPinkyEffectorId, LeftHandExtraFingerEffectorId, RightHandThumbEffectorId, RightHandIndexEffectorId,
  RightHandMiddleEffectorId, RightHandRingEffectorId, RightHandPinkyEffectorId, RightHandExtraFingerEffectorId,
  LeftFootThumbEffectorId, LeftFootIndexEffectorId, LeftFootMiddleEffectorId, LeftFootRingEffectorId,
  LeftFootPinkyEffectorId, LeftFootExtraFingerEffectorId, RightFootThumbEffectorId, RightFootIndexEffectorId,
  RightFootMiddleEffectorId, RightFootRingEffectorId, RightFootPinkyEffectorId, RightFootExtraFingerEffectorId,
  LastEffectorId, HipsEffectorId = 0, LeftAnkleEffectorId, RightAnkleEffectorId,
  LeftWristEffectorId, RightWristEffectorId, LeftKneeEffectorId, RightKneeEffectorId,
  LeftElbowEffectorId, RightElbowEffectorId, ChestOriginEffectorId, ChestEndEffectorId,
  LeftFootEffectorId, RightFootEffectorId, LeftShoulderEffectorId, RightShoulderEffectorId,
  HeadEffectorId, LeftHipEffectorId, RightHipEffectorId, LeftHandEffectorId,
  RightHandEffectorId, LeftHandThumbEffectorId, LeftHandIndexEffectorId, LeftHandMiddleEffectorId,
  LeftHandRingEffectorId, LeftHandPinkyEffectorId, LeftHandExtraFingerEffectorId, RightHandThumbEffectorId,
  RightHandIndexEffectorId, RightHandMiddleEffectorId, RightHandRingEffectorId, RightHandPinkyEffectorId,
  RightHandExtraFingerEffectorId, LeftFootThumbEffectorId, LeftFootIndexEffectorId, LeftFootMiddleEffectorId,
  LeftFootRingEffectorId, LeftFootPinkyEffectorId, LeftFootExtraFingerEffectorId, RightFootThumbEffectorId,
  RightFootIndexEffectorId, RightFootMiddleEffectorId, RightFootRingEffectorId, RightFootPinkyEffectorId,
  RightFootExtraFingerEffectorId, LastEffectorId
}
 Lists all Effectors used by HumanIK as goal points for IK solving. More...
 
enum  HIKFloorContact {
  HIKLeftHandFloor =0, HIKRightHandFloor, HIKLeftFootFloor, HIKRightFootFloor,
  HIKLastFloorId, HIKLeftHandFloor =0, HIKRightHandFloor, HIKLeftFootFloor,
  HIKRightFootFloor, HIKLastFloorId
}
 Lists the surfaces that can be controlled by the floor contact engine. More...
 
enum  HIKSolvingStep {
  HIKSolvingStepBodyPull = 1 << 0, HIKSolvingStepContact = 1 << 1, HIKSolvingStepContactApprox = 1 << 2, HIKSolvingStepLeftShoulder = 1 << 3,
  HIKSolvingStepRightShoulder = 1 << 4, HIKSolvingStepLeftArm = 1 << 5, HIKSolvingStepRightArm = 1 << 6, HIKSolvingStepLeftLeg = 1 << 7,
  HIKSolvingStepRightLeg = 1 << 8, HIKSolvingStepLeftHand = 1 << 9, HIKSolvingStepRightHand = 1 << 10, HIKSolvingStepLeftFoot = 1 << 11,
  HIKSolvingStepRightFoot = 1 << 12, HIKSolvingStepHead = 1 << 13, HIKSolvingStepSpine = 1 << 14, HIKSolvingStepHipsTranslation = 1 << 15,
  HIKSolvingStepRollExtraction = 1 << 16, HIKSolvingStepLeftArmSnS = 1 << 17, HIKSolvingStepRightArmSnS = 1 << 18, HIKSolvingStepLeftLegSnS = 1 << 19,
  HIKSolvingStepRightLegSnS = 1 << 20, HIKSolvingStepModifiers = 1 << 21, HIKSolvingStepAllParts, HIKSolvingStepAll = HIKSolvingStepBodyPull | HIKSolvingStepContact | HIKSolvingStepContactApprox | HIKSolvingStepAllParts | HIKSolvingStepHipsTranslation | HIKSolvingStepRollExtraction | HIKSolvingStepModifiers,
  HIKSolvingStepBodyPull = 1 << 0, HIKSolvingStepContact = 1 << 1, HIKSolvingStepContactApprox = 1 << 2, HIKSolvingStepLeftShoulder = 1 << 3,
  HIKSolvingStepRightShoulder = 1 << 4, HIKSolvingStepLeftArm = 1 << 5, HIKSolvingStepRightArm = 1 << 6, HIKSolvingStepLeftLeg = 1 << 7,
  HIKSolvingStepRightLeg = 1 << 8, HIKSolvingStepLeftHand = 1 << 9, HIKSolvingStepRightHand = 1 << 10, HIKSolvingStepLeftFoot = 1 << 11,
  HIKSolvingStepRightFoot = 1 << 12, HIKSolvingStepHead = 1 << 13, HIKSolvingStepSpine = 1 << 14, HIKSolvingStepHipsTranslation = 1 << 15,
  HIKSolvingStepRollExtraction = 1 << 16, HIKSolvingStepLeftArmSnS = 1 << 17, HIKSolvingStepRightArmSnS = 1 << 18, HIKSolvingStepLeftLegSnS = 1 << 19,
  HIKSolvingStepRightLegSnS = 1 << 20, HIKSolvingStepModifiers = 1 << 21, HIKSolvingStepAllParts, HIKSolvingStepAll = HIKSolvingStepBodyPull | HIKSolvingStepContact | HIKSolvingStepContactApprox | HIKSolvingStepAllParts | HIKSolvingStepHipsTranslation | HIKSolvingStepRollExtraction | HIKSolvingStepModifiers
}
 Lists the solving steps supported by the IK solver. More...
 
enum  HIKNodeFlags {
  HIKNodeNotUsed = 0, HIKNodeUsed = 1 << 0, HIKNodeParentOffset = 1 << 1 | HIKNodeUsed, HIKNodeLimits = 1 << 2 | HIKNodeParentOffset,
  HIKNodeNotUsed = 0, HIKNodeUsed = 1 << 0, HIKNodeParentOffset = 1 << 1 | HIKNodeUsed, HIKNodeLimits = 1 << 2 | HIKNodeParentOffset
}
 Flags used in the characterization process, in conjunction with HIKCharacterDefinition. More...
 
enum  HIKLimitActiveMask {
  HIKActiveMinX = 1 << 0, HIKActiveMinY = 1 << 1, HIKActiveMinZ = 1 << 2, HIKActiveMaxX = 1 << 3,
  HIKActiveMaxY = 1 << 4, HIKActiveMaxZ = 1 << 5, HIKActiveMinX = 1 << 0, HIKActiveMinY = 1 << 1,
  HIKActiveMinZ = 1 << 2, HIKActiveMaxX = 1 << 3, HIKActiveMaxY = 1 << 4, HIKActiveMaxZ = 1 << 5
}
 Lists the possible types of limits that can be activated for a Node. More...
 
enum  HIKRotationOrder {
  HIKOrderEulerXYZ = 0, HIKOrderEulerXYX, HIKOrderEulerXZY, HIKOrderEulerXZX,
  HIKOrderEulerYZX, HIKOrderEulerYZY, HIKOrderEulerYXZ, HIKOrderEulerYXY,
  HIKOrderEulerZXY, HIKOrderEulerZXZ, HIKOrderEulerZYX, HIKOrderEulerZYZ,
  HIKOrderSphericXYZ, HIKOrderEulerXYZ = 0, HIKOrderEulerXYX, HIKOrderEulerXZY,
  HIKOrderEulerXZX, HIKOrderEulerYZX, HIKOrderEulerYZY, HIKOrderEulerYXZ,
  HIKOrderEulerYXY, HIKOrderEulerZXY, HIKOrderEulerZXZ, HIKOrderEulerZYX,
  HIKOrderEulerZYZ, HIKOrderSphericXYZ
}
 Lists the possible rotation orders for the values set in the HIKSetRotationOrder() function. More...
 
enum  HIKMiddleJoint {
  HIKLeftKnee = 0, HIKRightKnee, HIKLeftElbow, HIKRightElbow,
  HIKLeftKnee = 0, HIKRightKnee, HIKLeftElbow, HIKRightElbow
}
 Lists the joints that can be inverted using the HIKInverseJoint() function. More...
 
enum  HIKToken { HIKNotUsed = -1, HIKLastNode = -2, HIKNotUsed = -1, HIKLastNode = -2 }
 Lists special values that you can use within the list of Node IDs in a data description. More...
 

Functions

HIKCharacterHIKCharacterCreate (const HIKCharacterDefinition *pCharacterDefinition, HIKMalloc pMalloc, const char *pValidationString)
 Create a new HIKCharacter. More...
 
HIKCharacterHIKCharacterCreateInPlace (const HIKCharacterDefinition *pCharacterDefinition, void *pBuffer, const char *pValidationString)
 Create a new HIKCharacter in the buffer pBuffer. More...
 
HIKEffectorSetStateHIKEffectorSetStateCreate (HIKMalloc pMalloc)
 Create a new HIKEffectorSetState. More...
 
HIKEffectorSetStateHIKEffectorSetStateCreateInPlace (void *pBuffer)
 Create a new HIKEffectorSetState in the buffer pBuffer. More...
 
HIKCharacterStateHIKCharacterStateCreate (const HIKCharacter *pCharacter, HIKMalloc pMalloc)
 Create a new HIKCharacterState. More...
 
HIKCharacterStateHIKCharacterStateCreateInPlace (const HIKCharacter *pCharacter, void *pBuffer)
 Create a new HIKCharacterState in the buffer pBuffer. More...
 
void HIKCharacterDestroy (HIKCharacter *pCharacter, HIKFree pFree)
 Destroy HIKCharacter pCharacter. More...
 
void HIKEffectorSetStateDestroy (HIKEffectorSetState *pESetState, HIKFree pFree)
 Destroy HIKEffectorSetState pESetState. More...
 
void HIKCharacterStateDestroy (HIKCharacterState *pCharacterState, HIKFree pFree)
 Destroy HIKCharacterState pCharacterState. More...
 
void HIKSetCharacterizeNodeStatefv (HIKCharacter *pCharacter, int pNodeId, const float pXForm[16])
 Set the transform matrix for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKSetCharacterizeNodeStatedv (HIKCharacter *pCharacter, int pNodeId, const double pXForm[16])
 Set the transform matrix for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKSetCharacterizeNodeStateTQSfv (HIKCharacter *pCharacter, int pNodeId, const float pT[4], const float pQ[4], const float pS[4])
 Set the translation, orientation and scaling for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKSetCharacterizeNodeStateTQSdv (HIKCharacter *pCharacter, int pNodeId, const double pT[4], const double pQ[4], const double pS[4])
 Set the translation, orientation and scaling for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKGetCharacterizeNodeStateTQSfv (const HIKCharacter *pCharacter, int pNodeId, float pT[4], float pQ[4], float pS[4])
 Retrieve the translation, orientation and scaling for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKGetCharacterizeNodeStateTQSdv (const HIKCharacter *pCharacter, int pNodeId, double pT[4], double pQ[4], double pS[4])
 Retrieve the translation, orientation and scaling for the Node pNodeId when the character is standing in the default T-stance. More...
 
void HIKGetCharacterizeNodeStatefv (const HIKCharacter *pCharacter, int pNodeId, float pXForm[16])
 Retrieve the transform matrix for the Node pNodeId when the character is standing in the default T-stance. More...
 
bool HIKCharacterizeGeometry (HIKCharacter *pCharacter)
 Set up and initialize character pCharacter for solving. More...
 
void HIKGetDefaultState (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 Retrieve the default T-stance for character pCharacter, storing it in HIKCharacterState pCharacterState. More...
 
void HIKGetRelaxPose (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 Calculate a basic seated pose for character pCharacter, storing it in HIKCharacterState pCharacterState. More...
 
int HIKGetNodeUse (const HIKCharacter *pCharacter, int pNodeId)
 Retrieve the characterization flag set for Node pNodeId in HIKCharacter pCharacter. More...
 
void HIKSetParentOffsetfv (HIKCharacter *pCharacter, int pNodeId, const float pParentTOffset[4], const float pParentQOffset[4], const float pParentSOffset[4])
 Set the parent offset for Node pNodeId. More...
 
void HIKSetParentOffsetdv (HIKCharacter *pCharacter, int pNodeId, const double pParentTOffset[4], const double pParentQOffset[4], const double pParentSOffset[4])
 Set the parent offset for Node pNodeId. More...
 
void HIKGetParentOffsetfv (const HIKCharacter *pCharacter, int pNodeId, float pParentTOffset[4], float pParentQOffset[4], float pParentSOffset[4])
 Retrieve the parent offset set for Node pNodeId. More...
 
void HIKGetParentOffsetdv (const HIKCharacter *pCharacter, int pNodeId, double pParentTOffset[4], double pParentQOffset[4], double pParentSOffset[4])
 Retrieve the parent offset set for Node pNodeId. More...
 
void HIKInverseJoint (HIKCharacter *pCharacter, eHIKMiddleJoint pJoint, int pInverse)
 Reverses the direction in which a middle joint bends, such as a knee or elbow. More...
 
int HIKIsJointInverted (const HIKCharacter *pCharacter, eHIKMiddleJoint pJoint)
 Indicates whether or not a middle joint is inverted. More...
 
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...
 
void HIKAddQuadripedOffset (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 Add quadruped offsets to HIKCharacterState pCharacterState. More...
 
void HIKSubQuadripedOffset (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 Subtract quadruped offsets from HIKCharacterState pCharacterState. More...
 
void HIKSolveForCharacter (const HIKCharacter *pDstCharacter, HIKCharacterState *pCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState)
 Given source character pSrcCharacter with HIKCharacterState pSrcCharacterState, calculate HIKCharacterState pCharacterState for destination character pDstCharacter. More...
 
void HIKSolveForCharacterRetarget (const HIKCharacter *pDstCharacter, HIKCharacterState *pDstCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, const HIKPropertySetState *pDstPropertyState)
 Simple rotation mapper between pSrcCharacter and pDstCharacter. More...
 
void HIKSolveForCharacterPrepareEffectorSet (const HIKCharacter *pDstCharacter, HIKCharacterState *pDstCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState)
 Sync IK pEffectorSetState on source FK pSrcCharacterState and adjust IK relative to destination character pDstCharacter. More...
 
void HIKGetEffectorStateFromCharacterfv (const HIKCharacter *pCharacter, int pEffectorIndex, const HIKCharacterState *pCharacterState, const HIKPropertySetState *pPropertyState, float pXForm[16])
 Retrieve the transform matrix of Effector pEffectorIndex for character pCharacter in HIKCharacterState pCharacterState. More...
 
void HIKGetEffectorStateFromCharacterdv (const HIKCharacter *pCharacter, int pEffectorIndex, const HIKCharacterState *pCharacterState, const HIKPropertySetState *pPropertyState, double pXForm[16])
 Retrieve the transform matrix of Effector pEffectorIndex for character pCharacter in HIKCharacterState pCharacterState. More...
 
void HIKEffectorSetFromCharacter (const HIKCharacter *pCharacter, HIKEffectorSetState *pEffectorSetState, const HIKCharacterState *pCharacterState, const HIKPropertySetState *pPropertyState)
 Set up HIKEffectorSetState pEffectorSetState to match character pCharacter in HIKCharacterState pCharacterState. More...
 
void HIKSolveForEffectorSet (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Solve character pCharacter with HIKEffectorSetState pEffectorSetState and initial HIKCharacterState pCharacterState, storing results in pCharacterState. More...
 
void HIKSolveForEffectorSetBegin (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Initializes an IK solve for character pCharacter. More...
 
void HIKSolveForEffectorSetFloorContactApprox (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the floor contact approximation solver for character pCharacter. More...
 
void HIKSolveForEffectorSetBodyPull (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the pull solver for character pCharacter. More...
 
void HIKSolveForEffectorSetArmsAndLegs (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the arms, legs and shoulders IK solver for character pCharacter. More...
 
void HIKSolveForEffectorSetFingersAndToes (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the fingers and toes IK solver for character pCharacter. More...
 
void HIKSolveForEffectorSetHeadAndNeck (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the head and neck IK solver for character pCharacter. More...
 
void HIKSolveForEffectorSetFloorContact (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the floor solver for character pCharacter. More...
 
void HIKSolveForEffectorSetHipsTranslation (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the special hips translation solver for character pCharacter. More...
 
void HIKSolveForEffectorSetRollExtraction (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the roll extraction solver for character pCharacter. More...
 
void HIKSolveForEffectorSetModifiers (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pPropertyState)
 Call the Mirror and Lock modifiers for character pCharacter. More...
 
void HIKSetEffectorStatefv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const float pXForm[16])
 Set the transform matrix of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetEffectorStatedv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const double pXForm[16])
 Set the transform matrix of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetEffectorStateTQSfv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const float pT[4], const float pQ[4], const float pS[4])
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetEffectorStateTQSdv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const double pT[4], const double pQ[4], const double pS[4])
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetEffectorStateTQSAlignfv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const float *pTQS, size_t pTOffset, size_t pQOffset, size_t pSOffset)
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetEffectorStateTQAlignfv (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, const float *pTQ, size_t pTOffset, size_t pQOffset)
 Set the translation (T) and quaternion rotation (Q) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStatefv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pXForm[16])
 Retrieve the transform matrix of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStatedv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, double pXForm[16])
 Retrieve the transform matrix of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStateTQSfv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pT[4], float pQ[4], float pS[4])
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStateTQfv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pT[4], float pQ[4])
 Retrieve the translation (T) and quaternion rotation (Q) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStateTQSdv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, double pT[4], double pQ[4], double pS[4])
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStateTQSAlignfv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float *pTQS, size_t pTOffset, size_t pQOffset, size_t pSOffset)
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKGetEffectorStateTQAlignfv (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float *pTQ, size_t pTOffset, size_t pQOffset)
 Retrieve the translation (T) and quaternion rotation (Q) in global space of Effector pEffectorIndex in HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetTranslationActive (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pValue)
 Set the Reach Translation constraint for Effector pEffectorIndex. More...
 
float HIKGetTranslationActive (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex)
 Retrieve the Reach Translation constraint for Effector pEffectorIndex. More...
 
void HIKSetRotationActive (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pValue)
 Set the Reach Rotation constraint for Effector pEffectorIndex. More...
 
float HIKGetRotationActive (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex)
 Retrieve the Reach Rotation constraint for Effector pEffectorIndex. More...
 
void HIKSetPull (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pValue)
 Set the Pull constraint for Effector pEffectorIndex. More...
 
float HIKGetPull (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex)
 Retrieve the Pull constraint for Effector pEffectorIndex. More...
 
void HIKSetResist (HIKEffectorSetState *pEffectorSetState, int pEffectorIndex, float pValue)
 Set the Resist constraint for Effector pEffectorIndex. More...
 
float HIKGetResist (const HIKEffectorSetState *pEffectorSetState, int pEffectorIndex)
 Retrieve the Resist constraint for Effector pEffectorIndex. More...
 
void HIKSetHandPullHips (HIKEffectorSetState *pEffectorSetState, int pLeft, float pValue)
 Set the amount of pull the left or right hand can exert on the hips. More...
 
float HIKGetHandPullHips (const HIKEffectorSetState *pEffectorSetState, int pLeft)
 Retrieve the amount of pull the left or right hand can exert on the hips. More...
 
void HIKSetEffectorFloorStatefv (HIKEffectorSetState *pEffectorSetState, int pFloor, const float pXForm[16])
 Set the transform matrix of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKSetEffectorFloorStatedv (HIKEffectorSetState *pEffectorSetState, int pFloor, const double pXForm[16])
 Set the transform matrix of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKSetEffectorFloorStateTQfv (HIKEffectorSetState *pEffectorSetState, int pFloor, const float pT[4], const float pQ[4])
 Set the translation and rotation in global space of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKSetEffectorFloorStateTQdv (HIKEffectorSetState *pEffectorSetState, int pFloor, const double pT[4], const double pQ[4])
 Set the translation and rotation in global space of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKGetEffectorFloorStatefv (const HIKEffectorSetState *pEffectorSetState, int pFloor, float pXForm[16])
 Retrieve the transform matrix of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKGetEffectorFloorStatedv (const HIKEffectorSetState *pEffectorSetState, int pFloor, double pXForm[16])
 Retrieve the transform matrix of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKGetEffectorFloorStateTQfv (const HIKEffectorSetState *pEffectorSetState, int pFloor, float pT[4], float pQ[4])
 Retrieve the translation and rotation in global space of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
void HIKGetEffectorFloorStateTQdv (const HIKEffectorSetState *pEffectorSetState, int pFloor, double pT[4], double pQ[4])
 Retrieve the translation and rotation in global space of the oriented plane that the floor contact engine applies to one of your character's feet or hands. More...
 
int HIKGetIKSolvingStep (const HIKEffectorSetState *pEffectorSetState)
 Retrieve the IK solving steps currently set for HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetIKSolvingStep (HIKEffectorSetState *pEffectorSetState, int pSolvingStep)
 Set the IK solving steps for HIKEffectorSetState pEffectorSetState. More...
 
void HIKSetCharacterStateTransformTQS (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, const void *pDataSet)
 Set the translation (T), quaternion rotation (Q) and scaling (S) of multiple Nodes from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKSetCharacterStateTransformTQ (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, const void *pDataSet)
 Set the translation (T) and quaternion rotation (Q) of multiple Nodes from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKSetCharacterStateTransform (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescriptionMatrix *pDataDescription, const void *pDataSet)
 Set the transform matrix of multiple Nodes from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKSetCharacterStateTransformTQS_SoA (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, const void *pDataSet)
 Set the translation (T), quaternion rotation (Q) and scaling (S) of multiple Nodes from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKSetNodeStatefv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float pXForm[16])
 Set the transform matrix of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStatedv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const double pXForm[16])
 Set the transform matrix of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQSfv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float pT[4], const float pQ[4], const float pS[4])
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQNonUniformSfv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float pT[4], const float pQ[4], const float pS[4])
 Set the translation (T), quaternion rotation (Q) and non-uniform scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQSdv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const double pT[4], const double pQ[4], const double pS[4])
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQSfvComputeDependent (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float *pT, const float *pQ, const float *pS, const bool pLocal)
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global or local space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQfv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float pT[4], const float pQ[4])
 Set the translation (T) and quaternion rotation (Q) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQSAlignfv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float *pTQS, size_t pTOffset, size_t pQOffset, size_t pSOffset)
 Set the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetNodeStateTQAlignfv (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, int pNodeId, const float *pTQ, size_t pTOffset, size_t pQOffset)
 Set the translation (T) and quaternion rotation (Q) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetCharacterStateTransformTQS (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, void *pDataSet)
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) of multiple Nodes from HIKCharacterState pCharacterState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetCharacterStateTransformTQ (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, void *pDataSet)
 Retrieve the translation (T) and quaternion rotation (Q) of multiple Nodes from HIKCharacterState pCharacterState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetCharacterStateTransformQ (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, void *pDataSet)
 Retrieve the quaternion rotation (Q) of multiple Nodes from HIKCharacterState pCharacterState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetCharacterStateTransform (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescriptionMatrix *pDataDescription, void *pDataSet)
 Retrieve the transform matrices of multiple Nodes from HIKCharacterState pCharacterState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetCharacterStateTransformTQS_SoA (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState, const HIKDataDescription *pDataDescription, void *pDataSet)
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) of multiple Nodes from HIKCharacterState pCharacterState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetNodeStatefv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float pXForm[16])
 Retrieve the transform matrix of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStatedv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, double pXForm[16])
 Retrieve the transform matrix of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQSfv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float pT[4], float pQ[4], float pS[4])
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQNonUniformSfv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float pT[4], float pQ[4], float pS[4])
 Retrieve the translation (T), quaternion rotation (Q) and non-uniform scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQSdv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, double pT[4], double pQ[4], double pS[4])
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQfv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float pT[4], float pQ[4])
 Retrieve the translation (T) and quaternion rotation (Q) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQSAlignfv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float *pTQS, size_t pTOffset, size_t pQOffset, size_t pSOffset)
 Retrieve the translation (T), quaternion rotation (Q) and scaling (S) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKGetNodeStateTQAlignfv (const HIKCharacter *pCharacter, const HIKCharacterState *pCharacterState, int pNodeId, float *pTQ, size_t pTOffset, size_t pQOffset)
 Retrieve the translation (T) and quaternion rotation (Q) in global space of Node pNodeId in HIKCharacterState pCharacterState. More...
 
void HIKSetEffectorStateDataTQS (HIKEffectorSetState *pEffectorSetState, const HIKEffectorDataDescription *pDataDescription, const void *pDataSet)
 Set the translation (T), quaternion rotation (Q), scaling (S), and IK constraints of multiple Effectors from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKSetEffectorStateData (HIKEffectorSetState *pEffectorSetState, const HIKEffectorDataDescriptionMatrix *pDataDescription, const void *pDataSet)
 Set the transform matrix and IK constraints of multiple Effectors from data set pDataSet, interpreted according to data description pDataDescription. More...
 
void HIKGetEffectorStateDataTQS (const HIKEffectorSetState *pEffectorSetState, const HIKEffectorDataDescription *pDataDescription, void *pDataSet)
 Retrieve the translation (T), quaternion rotation (Q), scaling (S), and IK constraints of multiple Effectors from HIKEffectorSetState pEffectorSetState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
void HIKGetEffectorStateData (const HIKEffectorSetState *pEffectorSetState, const HIKEffectorDataDescriptionMatrix *pDataDescription, void *pDataSet)
 Retrieve the transform matrix and IK constraints of multiple Effectors from HIKEffectorSetState pEffectorSetState, writing them to memory in data set pDataSet according to data description pDataDescription. More...
 
int HIKNodeIdFromNodeName (const char *pName)
 Retrieve the Node ID from a descriptive name. More...
 
const char * HIKNodeNameFromNodeId (int pNodeId)
 Retrieve a descriptive name for Node pNodeId. More...
 
int HIKEffectorIdFromEffectorName (const char *pName)
 Retrieve the Effector ID from a descriptive name. More...
 
const char * HIKEffectorNameFromEffectorId (int pEffectorId)
 Retrieve a descriptive name for Effector pEffectorId. More...
 
size_t HIKCharacterDefinitionSize (const HIKCharacterDefinition *pCharacterDefinition)
 Returns the size in bytes required by an HIKCharacter based on HIKCharacterDefinition pCharacterDefinition. More...
 
size_t HIKCharacterStateSizeFromDefinition (const HIKCharacterDefinition *pCharacterDefinition)
 Returns the size in bytes required by any HIKCharacterState that defines a pose for an HIKCharacter based on HIKCharacterDefinition pCharacterDefinition. More...
 
size_t HIKCharacterSize (const HIKCharacter *pCharacter)
 Returns the size of HIKCharacter pCharacter in bytes. More...
 
size_t HIKCharacterStateSize (const HIKCharacter *pCharacter)
 Returns the size in bytes required by any HIKCharacterState that defines a pose for HIKCharacter pCharacter. More...
 
size_t HIKCharacterStateSizeFromState (const HIKCharacterState *pCharacterState)
 Returns the size of HIKCharacterState pCharacterState in bytes. More...
 
size_t HIKEffectorSetStateSize ()
 Return the size of an HIKEffectorSetState object in bytes. More...
 

Macro Definition Documentation

#define HIK_API

Definition at line 60 of file humanik.h.

#define HIK_EXPAND_TO_STRING (   x)    HIK_EXPAND_TO_STRING_(x)

Definition at line 45 of file humanik.h.

#define HIK_EXPAND_TO_STRING_ (   x)    #x

Definition at line 44 of file humanik.h.

#define HIK_EXPORT   extern

Definition at line 56 of file humanik.h.

#define HUMANIK_VERSION_MAJOR   2014

Definition at line 38 of file humanik.h.

#define HUMANIK_VERSION_MINOR   2

Definition at line 39 of file humanik.h.

#define HUMANIK_VERSION_STRING
#define HUMANIK_VERSION_THIRD   2

Definition at line 40 of file humanik.h.

Typedef Documentation

see enum HIKMiddleJoint

Definition at line 822 of file humanik.h.

see enum HIKRotationOrder

Definition at line 682 of file humanik.h.

typedef enum HIKToken eHIKToken

see enum HIKToken

Definition at line 1596 of file humanik.h.

HIKFree

Memory de-allocator function.

This is exactly the same signature as free.

+ Examples:

Definition at line 393 of file humanik.h.

HIKMalloc

Memory allocator function.

This is exactly the same signature as malloc.

+ Examples:

Definition at line 388 of file humanik.h.

Enumeration Type Documentation

Lists all Effectors used by HumanIK as goal points for IK solving.

See also
~{ Mapping Joints to HumanIK Nodes and Effectors }~.
Enumerator
HipsEffectorId 

Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-way between the placement of LeftHipNodeId and RightHipNodeId when the character is in its default T-stance.

LeftAnkleEffectorId 

Provides an IK goal point for the LeftAnkleNodeId.

RightAnkleEffectorId 

Provides an IK goal point for the RightAnkleNodeId.

LeftWristEffectorId 

Provides an IK goal point for the LeftWristNodeId.

RightWristEffectorId 

Provides an IK goal point for the RightWristNodeId.

LeftKneeEffectorId 

Provides an IK goal point for the LeftKneeNodeId.

RightKneeEffectorId 

Provides an IK goal point for the RightKneeNodeId.

LeftElbowEffectorId 

Provides an IK goal point for the LeftElbowNodeId.

RightElbowEffectorId 

Provides an IK goal point for the RightElbowNodeId.

ChestOriginEffectorId 

Provides an IK goal point for the WaistNodeId.

ChestEndEffectorId 

Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-way between the placement of LeftShoulderNodeId and RightShoulderNodeId when the character is in its default T-stance.

LeftFootEffectorId 

Provides an IK goal point for the LeftFootNodeId.

RightFootEffectorId 

Provides an IK goal point for the RightFootNodeId.

LeftShoulderEffectorId 

Provides an IK goal point for the LeftShoulderNodeId.

RightShoulderEffectorId 

Provides an IK goal point for the RightShoulderNodeId.

HeadEffectorId 

Provides an IK goal point for the HeadNodeId.

LeftHipEffectorId 

Provides an IK goal point for the LeftHipNodeId.

RightHipEffectorId 

Provides an IK goal point for the RightHipNodeId.

LeftHandEffectorId 

Provides an IK goal point for the LeftHandNodeId.

RightHandEffectorId 

Provides an IK goal point for the RightHandNodeId.

LeftHandThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the left hand.

LeftHandIndexEffectorId 

Provides an IK goal point for the last Node in the index finger of the left hand.

LeftHandMiddleEffectorId 

Provides an IK goal point for the last Node in the middle finger of the left hand.

LeftHandRingEffectorId 

Provides an IK goal point for the last Node in the ring finger of the left hand.

LeftHandPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky finger of the left hand.

LeftHandExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra finger of the left hand.

RightHandThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the right hand.

RightHandIndexEffectorId 

Provides an IK goal point for the last Node in the index finger of the right hand.

RightHandMiddleEffectorId 

Provides an IK goal point for the last Node in the middle finger of the right hand.

RightHandRingEffectorId 

Provides an IK goal point for the last Node in the ring finger of the right hand.

RightHandPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky finger of the right hand.

RightHandExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra finger of the right hand.

LeftFootThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the left foot.

LeftFootIndexEffectorId 

Provides an IK goal point for the last Node in the index toe of the left foot.

LeftFootMiddleEffectorId 

Provides an IK goal point for the last Node in the middle toe of the left foot.

LeftFootRingEffectorId 

Provides an IK goal point for the last Node in the ring toe of the left foot.

LeftFootPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky toe of the left foot.

LeftFootExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra toe of the left foot.

RightFootThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the right foot.

RightFootIndexEffectorId 

Provides an IK goal point for the last Node in the index toe of the right foot.

RightFootMiddleEffectorId 

Provides an IK goal point for the last Node in the middle toe of the right foot.

RightFootRingEffectorId 

Provides an IK goal point for the last Node in the ring toe of the right foot.

RightFootPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky toe of the right foot.

RightFootExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra toe of the right foot.

LastEffectorId 

Marks the end of the enumeration.

HipsEffectorId 

Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-way between the placement of LeftHipNodeId and RightHipNodeId when the character is in its default T-stance.

LeftAnkleEffectorId 

Provides an IK goal point for the LeftAnkleNodeId.

RightAnkleEffectorId 

Provides an IK goal point for the RightAnkleNodeId.

LeftWristEffectorId 

Provides an IK goal point for the LeftWristNodeId.

RightWristEffectorId 

Provides an IK goal point for the RightWristNodeId.

LeftKneeEffectorId 

Provides an IK goal point for the LeftKneeNodeId.

RightKneeEffectorId 

Provides an IK goal point for the RightKneeNodeId.

LeftElbowEffectorId 

Provides an IK goal point for the LeftElbowNodeId.

RightElbowEffectorId 

Provides an IK goal point for the RightElbowNodeId.

ChestOriginEffectorId 

Provides an IK goal point for the WaistNodeId.

ChestEndEffectorId 

Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-way between the placement of LeftShoulderNodeId and RightShoulderNodeId when the character is in its default T-stance.

LeftFootEffectorId 

Provides an IK goal point for the LeftFootNodeId.

RightFootEffectorId 

Provides an IK goal point for the RightFootNodeId.

LeftShoulderEffectorId 

Provides an IK goal point for the LeftShoulderNodeId.

RightShoulderEffectorId 

Provides an IK goal point for the RightShoulderNodeId.

HeadEffectorId 

Provides an IK goal point for the HeadNodeId.

LeftHipEffectorId 

Provides an IK goal point for the LeftHipNodeId.

RightHipEffectorId 

Provides an IK goal point for the RightHipNodeId.

LeftHandEffectorId 

Provides an IK goal point for the LeftHandNodeId.

RightHandEffectorId 

Provides an IK goal point for the RightHandNodeId.

LeftHandThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the left hand.

LeftHandIndexEffectorId 

Provides an IK goal point for the last Node in the index finger of the left hand.

LeftHandMiddleEffectorId 

Provides an IK goal point for the last Node in the middle finger of the left hand.

LeftHandRingEffectorId 

Provides an IK goal point for the last Node in the ring finger of the left hand.

LeftHandPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky finger of the left hand.

LeftHandExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra finger of the left hand.

RightHandThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the right hand.

RightHandIndexEffectorId 

Provides an IK goal point for the last Node in the index finger of the right hand.

RightHandMiddleEffectorId 

Provides an IK goal point for the last Node in the middle finger of the right hand.

RightHandRingEffectorId 

Provides an IK goal point for the last Node in the ring finger of the right hand.

RightHandPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky finger of the right hand.

RightHandExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra finger of the right hand.

LeftFootThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the left foot.

LeftFootIndexEffectorId 

Provides an IK goal point for the last Node in the index toe of the left foot.

LeftFootMiddleEffectorId 

Provides an IK goal point for the last Node in the middle toe of the left foot.

LeftFootRingEffectorId 

Provides an IK goal point for the last Node in the ring toe of the left foot.

LeftFootPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky toe of the left foot.

LeftFootExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra toe of the left foot.

RightFootThumbEffectorId 

Provides an IK goal point for the last Node in the thumb of the right foot.

RightFootIndexEffectorId 

Provides an IK goal point for the last Node in the index toe of the right foot.

RightFootMiddleEffectorId 

Provides an IK goal point for the last Node in the middle toe of the right foot.

RightFootRingEffectorId 

Provides an IK goal point for the last Node in the ring toe of the right foot.

RightFootPinkyEffectorId 

Provides an IK goal point for the last Node in the pinky toe of the right foot.

RightFootExtraFingerEffectorId 

Provides an IK goal point for the last Node in the extra toe of the right foot.

LastEffectorId 

Marks the end of the enumeration.

Definition at line 265 of file humanik.h.

266 {
269  HipsEffectorId = 0, // 0
270  LeftAnkleEffectorId, // 1
271  RightAnkleEffectorId, // 2
272  LeftWristEffectorId, // 3
273  RightWristEffectorId, // 4
274  LeftKneeEffectorId, // 5
275  RightKneeEffectorId, // 6
276  LeftElbowEffectorId, // 7
277  RightElbowEffectorId, // 8
278  ChestOriginEffectorId, // 9
281  ChestEndEffectorId, // 10
282  LeftFootEffectorId, // 11
283  RightFootEffectorId, // 12
284  LeftShoulderEffectorId, // 13
286  HeadEffectorId, // 15
287  LeftHipEffectorId, // 16
288  RightHipEffectorId, // 17
289  LeftHandEffectorId, // 18
290  RightHandEffectorId, // 19
294  LeftHandRingEffectorId, // 23
306  LeftFootRingEffectorId, // 35
315  LastEffectorId // 44
316 };
Provides an IK goal point for the RightHandNodeId.
Definition: humanik.h:290
Provides an IK goal point for the last Node in the ring finger of the left hand.
Definition: humanik.h:294
Provides an IK goal point for the RightElbowNodeId.
Definition: humanik.h:277
Provides an IK goal point for the last Node in the middle finger of the right hand.
Definition: humanik.h:299
Provides an IK goal point for the LeftAnkleNodeId.
Definition: humanik.h:270
Provides an IK goal point for the last Node in the extra finger of the left hand. ...
Definition: humanik.h:296
Provides an IK goal point for the LeftShoulderNodeId.
Definition: humanik.h:284
Provides an IK goal point for the last Node in the extra toe of the right foot.
Definition: humanik.h:314
Provides an IK goal point for the last Node in the thumb of the left hand.
Definition: humanik.h:291
Provides an IK goal point for the LeftHipNodeId.
Definition: humanik.h:287
Provides an IK goal point for the last Node in the ring toe of the left foot.
Definition: humanik.h:306
Provides an IK goal point for the last Node in the ring finger of the right hand. ...
Definition: humanik.h:300
Provides an IK goal point for the RightWristNodeId.
Definition: humanik.h:273
Provides an IK goal point for the LeftKneeNodeId.
Definition: humanik.h:274
Provides an IK goal point for the last Node in the pinky toe of the right foot.
Definition: humanik.h:313
Provides an IK goal point for the WaistNodeId.
Definition: humanik.h:278
Provides an IK goal point for the RightAnkleNodeId.
Definition: humanik.h:271
Provides an IK goal point for the last Node in the thumb of the right hand.
Definition: humanik.h:297
Provides an IK goal point for the last Node in the middle toe of the right foot.
Definition: humanik.h:311
Provides an IK goal point for the last Node in the extra finger of the right hand.
Definition: humanik.h:302
Provides an IK goal point for the last Node in the thumb of the left foot.
Definition: humanik.h:303
Provides an IK goal point for the last Node in the pinky toe of the left foot.
Definition: humanik.h:307
Provides an IK goal point for the last Node in the middle toe of the left foot.
Definition: humanik.h:305
Provides an IK goal point for the last Node in the thumb of the right foot.
Definition: humanik.h:309
Provides an IK goal point for the LeftHandNodeId.
Definition: humanik.h:289
Provides an IK goal point for the last Node in the pinky finger of the left hand. ...
Definition: humanik.h:295
Provides an IK goal point for the last Node in the index toe of the left foot.
Definition: humanik.h:304
Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-w...
Definition: humanik.h:281
Provides an IK goal point for the last Node in the middle finger of the left hand.
Definition: humanik.h:293
Provides an IK goal point for the LeftFootNodeId.
Definition: humanik.h:282
Provides an IK goal point for the last Node in the index finger of the right hand.
Definition: humanik.h:298
Provides an IK goal point for the LeftWristNodeId.
Definition: humanik.h:272
Provides an IK goal point for the last Node in the ring toe of the right foot.
Definition: humanik.h:312
Provides an IK goal point for the RightHipNodeId.
Definition: humanik.h:288
Provides an IK goal point for the RightKneeNodeId.
Definition: humanik.h:275
Provides an IK goal point for the HeadNodeId.
Definition: humanik.h:286
Provides an IK goal point for the RightFootNodeId.
Definition: humanik.h:283
Provides an IK goal point for the last Node in the extra toe of the left foot.
Definition: humanik.h:308
Provides an IK goal point for an imaginary point on the character's skeleton that lies exactly half-w...
Definition: humanik.h:269
Provides an IK goal point for the last Node in the index toe of the right foot.
Definition: humanik.h:310
Marks the end of the enumeration.
Definition: humanik.h:315
Provides an IK goal point for the last Node in the pinky finger of the right hand.
Definition: humanik.h:301
Provides an IK goal point for the LeftElbowNodeId.
Definition: humanik.h:276
Provides an IK goal point for the RightShoulderNodeId.
Definition: humanik.h:285
Provides an IK goal point for the last Node in the index finger of the left hand. ...
Definition: humanik.h:292
enum HIKNodeId

Lists all Nodes known to HumanIK, used to set up and access data for .

See also
~{ Mapping Joints to HumanIK Nodes and Effectors }~.
Remarks
Some Nodes are required for all characters. Others are optional.
Enumerator
ReferenceNodeId 

An optional repository for the overall translation, rotation and scale of your character.

HipsNodeId 

Required.

LeftHipNodeId 
LeftKneeNodeId 
LeftAnkleNodeId 
RightHipNodeId 
RightKneeNodeId 
RightAnkleNodeId 
WaistNodeId 
LeftShoulderNodeId 
LeftElbowNodeId 
LeftWristNodeId 
RightShoulderNodeId 
RightElbowNodeId 
RightWristNodeId 
HeadNodeId 
LeftFootNodeId 

Optional.

RightFootNodeId 
LeftCollarNodeId 
RightCollarNodeId 
NeckNodeId 
LeftHandNodeId 
RightHandNodeId 
Spine1NodeId 
Spine2NodeId 
Spine3NodeId 
Spine4NodeId 
Spine5NodeId 
Spine6NodeId 
Spine7NodeId 
Spine8NodeId 
Spine9NodeId 
Neck1NodeId 
Neck2NodeId 
Neck3NodeId 
Neck4NodeId 
Neck5NodeId 
Neck6NodeId 
Neck7NodeId 
Neck8NodeId 
Neck9NodeId 
LeftHipRollNodeId 
LeftKneeRollNodeId 
RightHipRollNodeId 
RightKneeRollNodeId 
LeftShoulderRollNodeId 
LeftElbowRollNodeId 
RightShoulderRollNodeId 
RightElbowRollNodeId 
HipsTranslationId 
LeftThumbANodeId 
LeftThumbBNodeId 
LeftThumbCNodeId 
LeftThumbDNodeId 
LeftIndexANodeId 
LeftIndexBNodeId 
LeftIndexCNodeId 
LeftIndexDNodeId 
LeftMiddleANodeId 
LeftMiddleBNodeId 
LeftMiddleCNodeId 
LeftMiddleDNodeId 
LeftRingANodeId 
LeftRingBNodeId 
LeftRingCNodeId 
LeftRingDNodeId 
LeftPinkyANodeId 
LeftPinkyBNodeId 
LeftPinkyCNodeId 
LeftPinkyDNodeId 
LeftExtraFingerANodeId 
LeftExtraFingerBNodeId 
LeftExtraFingerCNodeId 
LeftExtraFingerDNodeId 
RightThumbANodeId 
RightThumbBNodeId 
RightThumbCNodeId 
RightThumbDNodeId 
RightIndexANodeId 
RightIndexBNodeId 
RightIndexCNodeId 
RightIndexDNodeId 
RightMiddleANodeId 
RightMiddleBNodeId 
RightMiddleCNodeId 
RightMiddleDNodeId 
RightRingANodeId 
RightRingBNodeId 
RightRingCNodeId 
RightRingDNodeId 
RightPinkyANodeId 
RightPinkyBNodeId 
RightPinkyCNodeId 
RightPinkyDNodeId 
RightExtraFingerANodeId 
RightExtraFingerBNodeId 
RightExtraFingerCNodeId 
RightExtraFingerDNodeId 
LeftFootThumbANodeId 
LeftFootThumbBNodeId 
LeftFootThumbCNodeId 
LeftFootThumbDNodeId 
LeftFootIndexANodeId 
LeftFootIndexBNodeId 
LeftFootIndexCNodeId 
LeftFootIndexDNodeId 
LeftFootMiddleANodeId 
LeftFootMiddleBNodeId 
LeftFootMiddleCNodeId 
LeftFootMiddleDNodeId 
LeftFootRingANodeId 
LeftFootRingBNodeId 
LeftFootRingCNodeId 
LeftFootRingDNodeId 
LeftFootPinkyANodeId 
LeftFootPinkyBNodeId 
LeftFootPinkyCNodeId 
LeftFootPinkyDNodeId 
LeftExtraFootFingerANodeId 
LeftExtraFootFingerBNodeId 
LeftExtraFootFingerCNodeId 
LeftExtraFootFingerDNodeId 
RightFootThumbANodeId 
RightFootThumbBNodeId 
RightFootThumbCNodeId 
RightFootThumbDNodeId 
RightFootIndexANodeId 
RightFootIndexBNodeId 
RightFootIndexCNodeId 
RightFootIndexDNodeId 
RightFootMiddleANodeId 
RightFootMiddleBNodeId 
RightFootMiddleCNodeId 
RightFootMiddleDNodeId 
RightFootRingANodeId 
RightFootRingBNodeId 
RightFootRingCNodeId 
RightFootRingDNodeId 
RightFootPinkyANodeId 
RightFootPinkyBNodeId 
RightFootPinkyCNodeId 
RightFootPinkyDNodeId 
RightExtraFootFingerANodeId 
RightExtraFootFingerBNodeId 
RightExtraFootFingerCNodeId 
RightExtraFootFingerDNodeId 
LeftThumbInNodeId 
LeftIndexInNodeId 
LeftMiddleInNodeId 
LeftRingInNodeId 
LeftPinkyInNodeId 
LeftExtraFingerInNodeId 
RightThumbInNodeId 
RightIndexInNodeId 
RightMiddleInNodeId 
RightRingInNodeId 
RightPinkyInNodeId 
RightExtraFingerInNodeId 
LeftFootThumbInNodeId 
LeftFootIndexInNodeId 
LeftFootMiddleInNodeId 
LeftFootRingInNodeId 
LeftFootPinkyInNodeId 
LeftExtraFootFingerInNodeId 
RightFootThumbInNodeId 
RightFootIndexInNodeId 
RightFootMiddleInNodeId 
RightFootRingInNodeId 
RightFootPinkyInNodeId 
RightExtraFootFingerInNodeId 
LeftCollarExtraNodeId 
RightCollarExtraNodeId 
LastNodeId 

Marks the end of the enumeration.

ReferenceNodeId 

An optional repository for the overall translation, rotation and scale of your character.

HipsNodeId 

Required.

LeftHipNodeId 
LeftKneeNodeId 
LeftAnkleNodeId 
RightHipNodeId 
RightKneeNodeId 
RightAnkleNodeId 
WaistNodeId 
LeftShoulderNodeId 
LeftElbowNodeId 
LeftWristNodeId 
RightShoulderNodeId 
RightElbowNodeId 
RightWristNodeId 
HeadNodeId 
LeftFootNodeId 

Optional.

RightFootNodeId 
LeftCollarNodeId 
RightCollarNodeId 
NeckNodeId 
LeftHandNodeId 
RightHandNodeId 
Spine1NodeId 
Spine2NodeId 
Spine3NodeId 
Spine4NodeId 
Spine5NodeId 
Spine6NodeId 
Spine7NodeId 
Spine8NodeId 
Spine9NodeId 
Neck1NodeId 
Neck2NodeId 
Neck3NodeId 
Neck4NodeId 
Neck5NodeId 
Neck6NodeId 
Neck7NodeId 
Neck8NodeId 
Neck9NodeId 
LeftHipRollNodeId 
LeftKneeRollNodeId 
RightHipRollNodeId 
RightKneeRollNodeId 
LeftShoulderRollNodeId 
LeftElbowRollNodeId 
RightShoulderRollNodeId 
RightElbowRollNodeId 
HipsTranslationId 
LeftThumbANodeId 
LeftThumbBNodeId 
LeftThumbCNodeId 
LeftThumbDNodeId 
LeftIndexANodeId 
LeftIndexBNodeId 
LeftIndexCNodeId 
LeftIndexDNodeId 
LeftMiddleANodeId 
LeftMiddleBNodeId 
LeftMiddleCNodeId 
LeftMiddleDNodeId 
LeftRingANodeId 
LeftRingBNodeId 
LeftRingCNodeId 
LeftRingDNodeId 
LeftPinkyANodeId 
LeftPinkyBNodeId 
LeftPinkyCNodeId 
LeftPinkyDNodeId 
LeftExtraFingerANodeId 
LeftExtraFingerBNodeId 
LeftExtraFingerCNodeId 
LeftExtraFingerDNodeId 
RightThumbANodeId 
RightThumbBNodeId 
RightThumbCNodeId 
RightThumbDNodeId 
RightIndexANodeId 
RightIndexBNodeId 
RightIndexCNodeId 
RightIndexDNodeId 
RightMiddleANodeId 
RightMiddleBNodeId 
RightMiddleCNodeId 
RightMiddleDNodeId 
RightRingANodeId 
RightRingBNodeId 
RightRingCNodeId 
RightRingDNodeId 
RightPinkyANodeId 
RightPinkyBNodeId 
RightPinkyCNodeId 
RightPinkyDNodeId 
RightExtraFingerANodeId 
RightExtraFingerBNodeId 
RightExtraFingerCNodeId 
RightExtraFingerDNodeId 
LeftFootThumbANodeId 
LeftFootThumbBNodeId 
LeftFootThumbCNodeId 
LeftFootThumbDNodeId 
LeftFootIndexANodeId 
LeftFootIndexBNodeId 
LeftFootIndexCNodeId 
LeftFootIndexDNodeId 
LeftFootMiddleANodeId 
LeftFootMiddleBNodeId 
LeftFootMiddleCNodeId 
LeftFootMiddleDNodeId 
LeftFootRingANodeId 
LeftFootRingBNodeId 
LeftFootRingCNodeId 
LeftFootRingDNodeId 
LeftFootPinkyANodeId 
LeftFootPinkyBNodeId 
LeftFootPinkyCNodeId 
LeftFootPinkyDNodeId 
LeftExtraFootFingerANodeId 
LeftExtraFootFingerBNodeId 
LeftExtraFootFingerCNodeId 
LeftExtraFootFingerDNodeId 
RightFootThumbANodeId 
RightFootThumbBNodeId 
RightFootThumbCNodeId 
RightFootThumbDNodeId 
RightFootIndexANodeId 
RightFootIndexBNodeId 
RightFootIndexCNodeId 
RightFootIndexDNodeId 
RightFootMiddleANodeId 
RightFootMiddleBNodeId 
RightFootMiddleCNodeId 
RightFootMiddleDNodeId 
RightFootRingANodeId 
RightFootRingBNodeId 
RightFootRingCNodeId 
RightFootRingDNodeId 
RightFootPinkyANodeId 
RightFootPinkyBNodeId 
RightFootPinkyCNodeId 
RightFootPinkyDNodeId 
RightExtraFootFingerANodeId 
RightExtraFootFingerBNodeId 
RightExtraFootFingerCNodeId 
RightExtraFootFingerDNodeId 
LeftThumbInNodeId 
LeftIndexInNodeId 
LeftMiddleInNodeId 
LeftRingInNodeId 
LeftPinkyInNodeId 
LeftExtraFingerInNodeId 
RightThumbInNodeId 
RightIndexInNodeId 
RightMiddleInNodeId 
RightRingInNodeId 
RightPinkyInNodeId 
RightExtraFingerInNodeId 
LeftFootThumbInNodeId 
LeftFootIndexInNodeId 
LeftFootMiddleInNodeId 
LeftFootRingInNodeId 
LeftFootPinkyInNodeId 
LeftExtraFootFingerInNodeId 
RightFootThumbInNodeId 
RightFootIndexInNodeId 
RightFootMiddleInNodeId 
RightFootRingInNodeId 
RightFootPinkyInNodeId 
RightExtraFootFingerInNodeId 
LeftCollarExtraNodeId 
RightCollarExtraNodeId 
LeafLeftHipRollNode1Id 
LeafLeftKneeRollNode1Id 
LeafRightHipRollNode1Id 
LeafRightKneeRollNode1Id 
LeafLeftShoulderRollNode1Id 
LeafLeftElbowRollNode1Id 
LeafRightShoulderRollNode1Id 
LeafRightElbowRollNode1Id 
LeafLeftHipRollNode2Id 
LeafLeftKneeRollNode2Id 
LeafRightHipRollNode2Id 
LeafRightKneeRollNode2Id 
LeafLeftShoulderRollNode2Id 
LeafLeftElbowRollNode2Id 
LeafRightShoulderRollNode2Id 
LeafRightElbowRollNode2Id 
LeafLeftHipRollNode3Id 
LeafLeftKneeRollNode3Id 
LeafRightHipRollNode3Id 
LeafRightKneeRollNode3Id 
LeafLeftShoulderRollNode3Id 
LeafLeftElbowRollNode3Id 
LeafRightShoulderRollNode3Id 
LeafRightElbowRollNode3Id 
LeafLeftHipRollNode4Id 
LeafLeftKneeRollNode4Id 
LeafRightHipRollNode4Id 
LeafRightKneeRollNode4Id 
LeafLeftShoulderRollNode4Id 
LeafLeftElbowRollNode4Id 
LeafRightShoulderRollNode4Id 
LeafRightElbowRollNode4Id 
LeafLeftHipRollNode5Id 
LeafLeftKneeRollNode5Id 
LeafRightHipRollNode5Id 
LeafRightKneeRollNode5Id 
LeafLeftShoulderRollNode5Id 
LeafLeftElbowRollNode5Id 
LeafRightShoulderRollNode5Id 
LeafRightElbowRollNode5Id 
LastNodeId 

Marks the end of the enumeration.

Definition at line 77 of file humanik.h.

78 {
79  ReferenceNodeId = 0,
80 
82  HipsNodeId,
96  HeadNodeId,
104  NeckNodeId,
107  Spine1NodeId,
108  Spine2NodeId,
109  Spine3NodeId,
110  Spine4NodeId,
111  Spine5NodeId,
112  Spine6NodeId,
113  Spine7NodeId,
114  Spine8NodeId,
115  Spine9NodeId,
116  Neck1NodeId,
117  Neck2NodeId,
118  Neck3NodeId,
119  Neck4NodeId,
120  Neck5NodeId,
121  Neck6NodeId,
122  Neck7NodeId,
123  Neck8NodeId,
124  Neck9NodeId,
257  LastNodeId
258 };
Marks the end of the enumeration.
Definition: humanik.h:257
Optional.
Definition: humanik.h:100
Required.
Definition: humanik.h:82
An optional repository for the overall translation, rotation and scale of your character.
Definition: humanik.h:79

Lists the solving steps supported by the IK solver.

Used when setting the solving steps that the solver should perform. See HIKSetIKSolvingStep() and HIKGetIKSolvingStep().

Enumerator
HIKSolvingStepBodyPull 

Activates the full-body Pull engine for the inverse kinematics solver.

You must specify this solving step in order for the solver to take the Pull and Resist settings of your Effectors into account.

HIKSolvingStepContact 

Activates the Foot and Hand Contact engine for the inverse kinematics solver.

You must specify this solving step in order for the solver to prevent your character's feet and hands from passing through oriented planes such as floors and walls. See ~{ Foot and Hand Contact }~.

HIKSolvingStepContactApprox 

Configures the inverse kinematics solver to perform an initial approximate solving with the floor contact engine before invoking the full-body Pull engine.

This first pass helps ensure that the Pull engine does not accidentally pull any other body parts through the oriented planes specified for your character's hands and feet. You should use this solving step if you use both the HIKSolvingStepBodyPull and HIKSolvingStepContact solving steps.

HIKSolvingStepLeftShoulder 

Solves the character's left collar bones: LeftCollarNodeId and LeftCollarExtraNodeId.

HIKSolvingStepRightShoulder 

Solves the character's right collar bones: RightCollarNodeId and RightCollarExtraNodeId.

HIKSolvingStepLeftArm 

Solves the character's left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive.

HIKSolvingStepRightArm 

Solves the character's right arm, from RightShoulderNodeId to RightHandNodeId inclusive.

HIKSolvingStepLeftLeg 

Solves the character's left leg, from LeftHipNodeId to LeftFootNodeId inclusive.

HIKSolvingStepRightLeg 

Solves the character's right leg, from RightHipNodeId to RightFootNodeId inclusive.

HIKSolvingStepLeftHand 

Solves the fingers of the left hand.

Note that LeftHandNodeId itself is included in HIKSolvingStepLeftArm.

HIKSolvingStepRightHand 

Solves the fingers of the right hand.

Note that RightHandNodeId itself is included in HIKSolvingStepRightArm.

HIKSolvingStepLeftFoot 

Solves the toes of the left foot.

Note that LeftFootNodeId itself is included in HIKSolvingStepLeftLeg.

HIKSolvingStepRightFoot 

Solves the toes of the right foot.

Note that RightFootNodeId itself is included in HIKSolvingStepRightLeg.

HIKSolvingStepHead 

Solves the character's neck and head, including NeckNodeId, Neck1NodeId to Neck9NodeId, and HeadNodeId.

HIKSolvingStepSpine 

Solves the character's spine, including WaistNodeId, and Spine1NodeId to Spine9NodeId.

HIKSolvingStepHipsTranslation 

Adjusts the translation of the character's hips, if necessary.

HIKSolvingStepRollExtraction 

Shifts a percentage of the roll rotation from the character's shoulders, elbows, hips and knees to their respective roll bones.

The percentage of the roll rotation that is extracted from the Nodes and applied to the roll Nodes is specified by a set of character properties. See ~{ General Properties }~.

HIKSolvingStepLeftArmSnS 

Activates Squash & Strech for the left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive.

HIKSolvingStepRightArmSnS 

Activates Squash & Strech for the right arm, from RightShoulderNodeId to RightHandNodeId inclusive.

HIKSolvingStepLeftLegSnS 

Activates Squash & Strech for the left arm, from LeftHipNodeId to LeftFootNodeId inclusive.

HIKSolvingStepRightLegSnS 

Activates Squash & Strech for the right arm, from RightHipNodeId to RightFootNodeId inclusive.

HIKSolvingStepModifiers 

Activates Lock & Mirror modifiers.

HIKSolvingStepAllParts 

Enables the solving steps for all body parts, from HIKSolvingStepLeftShoulder to HIKSolvingStepSpine.

Excludes pull, contact, hips translation, roll extraction and Squash 'n' Stretch.

HIKSolvingStepAll 

Enables all solving steps listed above.

HIKSolvingStepBodyPull 

Activates the full-body Pull engine for the inverse kinematics solver.

You must specify this solving step in order for the solver to take the Pull and Resist settings of your Effectors into account.

HIKSolvingStepContact 

Activates the Foot and Hand Contact engine for the inverse kinematics solver.

You must specify this solving step in order for the solver to prevent your character's feet and hands from passing through oriented planes such as floors and walls. See ~{ Foot and Hand Contact }~.

HIKSolvingStepContactApprox 

Configures the inverse kinematics solver to perform an initial approximate solving with the floor contact engine before invoking the full-body Pull engine.

This first pass helps ensure that the Pull engine does not accidentally pull any other body parts through the oriented planes specified for your character's hands and feet. You should use this solving step if you use both the HIKSolvingStepBodyPull and HIKSolvingStepContact solving steps.

HIKSolvingStepLeftShoulder 

Solves the character's left collar bones: LeftCollarNodeId and LeftCollarExtraNodeId.

HIKSolvingStepRightShoulder 

Solves the character's right collar bones: RightCollarNodeId and RightCollarExtraNodeId.

HIKSolvingStepLeftArm 

Solves the character's left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive.

HIKSolvingStepRightArm 

Solves the character's right arm, from RightShoulderNodeId to RightHandNodeId inclusive.

HIKSolvingStepLeftLeg 

Solves the character's left leg, from LeftHipNodeId to LeftFootNodeId inclusive.

HIKSolvingStepRightLeg 

Solves the character's right leg, from RightHipNodeId to RightFootNodeId inclusive.

HIKSolvingStepLeftHand 

Solves the fingers of the left hand.

Note that LeftHandNodeId itself is included in HIKSolvingStepLeftArm.

HIKSolvingStepRightHand 

Solves the fingers of the right hand.

Note that RightHandNodeId itself is included in HIKSolvingStepRightArm.

HIKSolvingStepLeftFoot 

Solves the toes of the left foot.

Note that LeftFootNodeId itself is included in HIKSolvingStepLeftLeg.

HIKSolvingStepRightFoot 

Solves the toes of the right foot.

Note that RightFootNodeId itself is included in HIKSolvingStepRightLeg.

HIKSolvingStepHead 

Solves the character's neck and head, including NeckNodeId, Neck1NodeId to Neck9NodeId, and HeadNodeId.

HIKSolvingStepSpine 

Solves the character's spine, including WaistNodeId, and Spine1NodeId to Spine9NodeId.

HIKSolvingStepHipsTranslation 

Adjusts the translation of the character's hips, if necessary.

HIKSolvingStepRollExtraction 

Shifts a percentage of the roll rotation from the character's shoulders, elbows, hips and knees to their respective roll bones.

The percentage of the roll rotation that is extracted from the Nodes and applied to the roll Nodes is specified by a set of character properties. See ~{ General Properties }~.

HIKSolvingStepLeftArmSnS 

Activates Squash & Strech for the left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive.

HIKSolvingStepRightArmSnS 

Activates Squash & Strech for the right arm, from RightShoulderNodeId to RightHandNodeId inclusive.

HIKSolvingStepLeftLegSnS 

Activates Squash & Strech for the left arm, from LeftHipNodeId to LeftFootNodeId inclusive.

HIKSolvingStepRightLegSnS 

Activates Squash & Strech for the right arm, from RightHipNodeId to RightFootNodeId inclusive.

HIKSolvingStepModifiers 

Activates Lock & Mirror modifiers.

HIKSolvingStepAllParts 

Enables the solving steps for all body parts, from HIKSolvingStepLeftShoulder to HIKSolvingStepSpine.

Excludes pull, contact, hips translation, roll extraction and Squash 'n' Stretch.

HIKSolvingStepAll 

Enables all solving steps listed above.

Definition at line 340 of file humanik.h.

341 {
344  HIKSolvingStepBodyPull = 1 << 0,
348  HIKSolvingStepContact = 1 << 1,
354  HIKSolvingStepLeftShoulder = 1 << 3,
355  HIKSolvingStepRightShoulder = 1 << 4,
356  HIKSolvingStepLeftArm = 1 << 5,
357  HIKSolvingStepRightArm = 1 << 6,
358  HIKSolvingStepLeftLeg = 1 << 7,
359  HIKSolvingStepRightLeg = 1 << 8,
360  HIKSolvingStepLeftHand = 1 << 9,
361  HIKSolvingStepRightHand = 1 << 10,
362  HIKSolvingStepLeftFoot = 1 << 11,
363  HIKSolvingStepRightFoot = 1 << 12,
364  HIKSolvingStepHead = 1 << 13,
365  HIKSolvingStepSpine = 1 << 14,
367 
371  HIKSolvingStepLeftArmSnS = 1 << 17,
372  HIKSolvingStepRightArmSnS = 1 << 18,
373  HIKSolvingStepLeftLegSnS = 1 << 19,
374  HIKSolvingStepRightLegSnS = 1 << 20,
375  HIKSolvingStepModifiers = 1 << 21,
376 
383 };
Solves the toes of the left foot.
Definition: humanik.h:362
Solves the character's right arm, from RightShoulderNodeId to RightHandNodeId inclusive.
Definition: humanik.h:357
Solves the fingers of the left hand.
Definition: humanik.h:360
Solves the character's left leg, from LeftHipNodeId to LeftFootNodeId inclusive.
Definition: humanik.h:358
Solves the character's right leg, from RightHipNodeId to RightFootNodeId inclusive.
Definition: humanik.h:359
Solves the fingers of the right hand.
Definition: humanik.h:361
Adjusts the translation of the character's hips, if necessary.
Definition: humanik.h:366
Activates Lock & Mirror modifiers.
Definition: humanik.h:375
Solves the character's neck and head, including NeckNodeId, Neck1NodeId to Neck9NodeId, and HeadNodeId.
Definition: humanik.h:364
Activates the full-body Pull engine for the inverse kinematics solver.
Definition: humanik.h:344
Solves the character's left collar bones: LeftCollarNodeId and LeftCollarExtraNodeId.
Definition: humanik.h:354
Enables all solving steps listed above.
Definition: humanik.h:382
Enables the solving steps for all body parts, from HIKSolvingStepLeftShoulder to HIKSolvingStepSpine...
Definition: humanik.h:378
Activates Squash & Strech for the right arm, from RightHipNodeId to RightFootNodeId inclusive...
Definition: humanik.h:374
Shifts a percentage of the roll rotation from the character's shoulders, elbows, hips and knees to th...
Definition: humanik.h:370
Solves the toes of the right foot.
Definition: humanik.h:363
Activates Squash & Strech for the left arm, from LeftHipNodeId to LeftFootNodeId inclusive.
Definition: humanik.h:373
Activates the Foot and Hand Contact engine for the inverse kinematics solver.
Definition: humanik.h:348
Configures the inverse kinematics solver to perform an initial approximate solving with the floor con...
Definition: humanik.h:353
Activates Squash & Strech for the right arm, from RightShoulderNodeId to RightHandNodeId inclusive...
Definition: humanik.h:372
Solves the character's left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive.
Definition: humanik.h:356
Activates Squash & Strech for the left arm, from LeftShoulderNodeId to LeftHandNodeId inclusive...
Definition: humanik.h:371
Solves the character's spine, including WaistNodeId, and Spine1NodeId to Spine9NodeId.
Definition: humanik.h:365
Solves the character's right collar bones: RightCollarNodeId and RightCollarExtraNodeId.
Definition: humanik.h:355

Go to the source code of this file.