Character Validation

Character Validation

Module description

Contains functions that validate character definitions and character geometry.

Macros

#define HIKRequiredBoneCount   15
 The number of required Nodes for an HIKCharacter. More...
 
#define HIKSpineBoneCount   9
 The maximum number of possible Nodes in a character's spine. More...
 
#define HIKNeckBoneCount   9
 The maximum number of possible Nodes in a character's neck. More...
 
#define HIKRollBoneCount   8
 The maximum number of possible roll Nodes in a character's arms and legs. More...
 
#define HIKRequiredBoneCount   15
 The number of required Nodes for an HIKCharacter. More...
 
#define HIKSpineBoneCount   9
 The maximum number of possible Nodes in a character's spine. More...
 
#define HIKNeckBoneCount   9
 The maximum number of possible Nodes in a character's neck. More...
 
#define HIKRollBoneCount   8
 The maximum number of possible roll Nodes in a character's arms and legs. More...
 

Functions

const intHIKGetRequiredBoneList ()
 Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are required. More...
 
const intHIKGetSpineBoneList ()
 Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are part of the spine. More...
 
const intHIKGetNeckBoneList ()
 Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are part of the neck. More...
 
const intHIKGetRollBoneList ()
 Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are roll Nodes. More...
 
bool HIKValidateRequiredBone (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the specified HIKCharacterDefinition contains all required Nodes. More...
 
bool HIKValidateSpine (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the spine of the specified HIKCharacterDefinition does not have any missing Nodes. More...
 
bool HIKValidateNeck (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the neck of the specified HIKCharacterDefinition does not have any missing Nodes. More...
 
bool HIKValidateHipsXAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the hips of the specified HIKCharacter are aligned along the X axis. More...
 
bool HIKValidateArmsXAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the arms of the specified HIKCharacter are aligned along the X axis. More...
 
bool HIKValidateSpineYAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that the spine of the specified HIKCharacter is aligned along the Y axis. More...
 
bool HIKValidateBonePosition (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 Validates that no two Nodes are set at the same position in 3D space. More...
 

Macro Definition Documentation

#define HIKNeckBoneCount   9

The maximum number of possible Nodes in a character's neck.

Definition at line 53 of file hikvalidation.h.

#define HIKNeckBoneCount   9

The maximum number of possible Nodes in a character's neck.

Definition at line 53 of file hikvalidation.h.

#define HIKRequiredBoneCount   15

The number of required Nodes for an HIKCharacter.

Definition at line 47 of file hikvalidation.h.

#define HIKRequiredBoneCount   15

The number of required Nodes for an HIKCharacter.

Definition at line 47 of file hikvalidation.h.

#define HIKRollBoneCount   8

The maximum number of possible roll Nodes in a character's arms and legs.

Definition at line 56 of file hikvalidation.h.

#define HIKRollBoneCount   8

The maximum number of possible roll Nodes in a character's arms and legs.

Definition at line 56 of file hikvalidation.h.

#define HIKSpineBoneCount   9

The maximum number of possible Nodes in a character's spine.

Definition at line 50 of file hikvalidation.h.

#define HIKSpineBoneCount   9

The maximum number of possible Nodes in a character's spine.

Definition at line 50 of file hikvalidation.h.

Function Documentation

const int * HIKGetNeckBoneList ( )

Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are part of the neck.

The length of the array should always be equal to HIKNeckBoneCount.

const int * HIKGetRequiredBoneList ( )

Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are required.

The length of the array should always be equal to HIKRequiredBoneCount.

const int * HIKGetRollBoneList ( )

Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are roll Nodes.

The length of the array should always be equal to HIKNeckBoneCount.

const int * HIKGetSpineBoneList ( )

Returns a list of integers that identify which Nodes in the HIKNodeId enumeration are part of the spine.

The length of the array should always be equal to HIKSpineBoneCount.

bool HIKValidateArmsXAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the arms of the specified HIKCharacter are aligned along the X axis.

If the alignment of the arms is too far off, the function returns false and updates the pErrorMsg to indicate the problem.

Parameters
pCharacterThe HIKCharacter to test.
[out]pErrorMsgUpdated to indicate any errors detected with the character geometry.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if the alignment of the arms is too far off the X axis, or true otherwise.
bool HIKValidateBonePosition ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that no two Nodes are set at the same position in 3D space.

If two Nodes are found at the same position, the function returns false and updates the pErrorMsg to indicate the problem.

Parameters
pCharacterThe HIKCharacter to test.
[out]pErrorMsgUpdated to indicate any errors detected with the character geometry.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if two or more Nodes are at the same position, or true otherwise.
bool HIKValidateHipsXAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the hips of the specified HIKCharacter are aligned along the X axis.

If the alignment of the hips is too far off, the function returns false and updates the pErrorMsg to indicate the problem.

Parameters
pCharacterThe HIKCharacter to test.
[out]pErrorMsgUpdated to indicate any errors detected with the character geometry.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if the alignment of the hips is too far off the X axis, or true otherwise.
bool HIKValidateNeck ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the neck of the specified HIKCharacterDefinition does not have any missing Nodes.

For example, a character can not be created with Neck3NodeId unless it also has Neck2NodeId and Neck1NodeId. If one or more Nodes in the nech are missing, the function returns false and updates the pErrorMsg to list the missing Nodes.

Parameters
pCharacterDefinitionThe HIKCharacterDefinition to test.
[out]pErrorMsgUpdated to list all missing neck Nodes not found in the definition.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if at least one neck Node is missing in the character definition, or true otherwise.
bool HIKValidateRequiredBone ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the specified HIKCharacterDefinition contains all required Nodes.

If one or more Nodes are missing, the function returns false and updates the pErrorMsg to list the missing Nodes.

Parameters
pCharacterDefinitionThe HIKCharacterDefinition to test.
[out]pErrorMsgUpdated to list all missing Nodes not found in the definition.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if at least one required Node is missing in the character definition, or true otherwise.
bool HIKValidateSpine ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the spine of the specified HIKCharacterDefinition does not have any missing Nodes.

For example, a character can not be created with Spine3NodeId unless it also has Spine2NodeId and Spine1NodeId. If one or more Nodes in the spine are missing, the function returns false and updates the pErrorMsg to list the missing Nodes.

Parameters
pCharacterDefinitionThe HIKCharacterDefinition to test.
[out]pErrorMsgUpdated to list all missing spine Nodes not found in the definition.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if at least one spine Node is missing in the character definition, or true otherwise.
bool HIKValidateSpineYAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

Validates that the spine of the specified HIKCharacter is aligned along the Y axis.

If the alignment of the spine is too far off, the function returns false and updates the pErrorMsg to indicate the problem.

Parameters
pCharacterThe HIKCharacter to test.
[out]pErrorMsgUpdated to indicate any errors detected with the character geometry.
[out]pErrorMsgSizeUpdated to indicate the number of characters in the pErrorMsg string.
Returns
false if the alignment of the spine is too far off the Y axis, or true otherwise.