public static BoneType ToBoneType( BoneLocation boneLocation )
{
switch( boneLocation ) {
case BoneLocation.Hips: return BoneType.Hips;
case BoneLocation.Neck: return BoneType.Neck;
case BoneLocation.Head: return BoneType.Head;
case BoneLocation.LeftEye: return BoneType.Eye;
case BoneLocation.RightEye: return BoneType.Eye;
case BoneLocation.LeftLeg: return BoneType.Leg;
case BoneLocation.RightLeg: return BoneType.Leg;
case BoneLocation.LeftKnee: return BoneType.Knee;
case BoneLocation.RightKnee: return BoneType.Knee;
case BoneLocation.LeftFoot: return BoneType.Foot;
case BoneLocation.RightFoot: return BoneType.Foot;
case BoneLocation.LeftShoulder: return BoneType.Shoulder;
case BoneLocation.RightShoulder: return BoneType.Shoulder;
case BoneLocation.LeftArm: return BoneType.Arm;
case BoneLocation.RightArm: return BoneType.Arm;
case BoneLocation.LeftElbow: return BoneType.Elbow;
case BoneLocation.RightElbow: return BoneType.Elbow;
case BoneLocation.LeftWrist: return BoneType.Wrist;
case BoneLocation.RightWrist: return BoneType.Wrist;
}
if( (int)boneLocation >= (int)BoneLocation.Spine &&
(int)boneLocation <= (int)BoneLocation.SpineU ) {
return BoneType.Spine;
}
if( (int)boneLocation >= (int)BoneLocation.LeftArmRoll0 &&
(int)boneLocation <= (int)BoneLocation.RightArmRoll0 + MaxArmRollLength - 1 ) {
return BoneType.ArmRoll;
}
if( (int)boneLocation >= (int)BoneLocation.LeftElbowRoll0 &&
(int)boneLocation <= (int)BoneLocation.RightElbowRoll0 + MaxElbowRollLength - 1 ) {
return BoneType.ElbowRoll;
}
if( (int)boneLocation >= (int)BoneLocation.LeftHandThumb0 &&
(int)boneLocation <= (int)BoneLocation.RightHandLittleTip ) {
return BoneType.HandFinger;
}
return BoneType.Unknown;
}