using System.Collections; using System.Collections.Generic; using UnityEngine; namespace VRM { public static class EnumExtensions { public static HumanBodyBones ToUnityBone(this VRMBone val) { switch (val) { case VRMBone.hips: return HumanBodyBones.Hips;//"hips" case VRMBone.leftUpperLeg: return HumanBodyBones.LeftUpperLeg;//"leftUpperLeg"; case VRMBone.rightUpperLeg: return HumanBodyBones.RightUpperLeg;//"rightUpperLeg"; case VRMBone.leftLowerLeg: return HumanBodyBones.LeftLowerLeg;//"leftLowerLeg"; case VRMBone.rightLowerLeg: return HumanBodyBones.RightLowerLeg;//"rightLowerLeg"; case VRMBone.leftFoot: return HumanBodyBones.LeftFoot;//"leftFoot"; case VRMBone.rightFoot: return HumanBodyBones.RightFoot;//"rightFoot"; case VRMBone.spine: return HumanBodyBones.Spine;//"spine"; case VRMBone.chest: return HumanBodyBones.Chest;//"chest"; case VRMBone.neck: return HumanBodyBones.Neck;//"neck"; case VRMBone.head: return HumanBodyBones.Head;//"head"; case VRMBone.leftShoulder: return HumanBodyBones.LeftShoulder;//"leftShoulder"; case VRMBone.rightShoulder: return HumanBodyBones.RightShoulder;//"rightShoulder"; case VRMBone.leftUpperArm: return HumanBodyBones.LeftUpperArm;//"leftUpperArm"; case VRMBone.rightUpperArm: return HumanBodyBones.RightUpperArm;//"rightUpperArm"; case VRMBone.leftLowerArm: return HumanBodyBones.LeftLowerArm;//"leftLowerArm"; case VRMBone.rightLowerArm: return HumanBodyBones.RightLowerArm;//"rightLowerArm"; case VRMBone.leftHand: return HumanBodyBones.LeftHand;//"leftHand"; case VRMBone.rightHand: return HumanBodyBones.RightHand;//"rightHand"; case VRMBone.leftToes: return HumanBodyBones.LeftToes;//"leftToes"; case VRMBone.rightToes: return HumanBodyBones.RightToes;//"rightToes"; case VRMBone.leftEye: return HumanBodyBones.LeftEye;//"leftEye"; case VRMBone.rightEye: return HumanBodyBones.RightEye;//"rightEye"; case VRMBone.jaw: return HumanBodyBones.Jaw;//"jaw"; case VRMBone.leftThumbProximal: return HumanBodyBones.LeftThumbProximal; case VRMBone.leftThumbIntermediate: return HumanBodyBones.LeftThumbIntermediate; case VRMBone.leftThumbDistal: return HumanBodyBones.LeftThumbDistal; case VRMBone.leftIndexProximal: return HumanBodyBones.LeftIndexProximal; case VRMBone.leftIndexIntermediate: return HumanBodyBones.LeftIndexIntermediate; case VRMBone.leftIndexDistal: return HumanBodyBones.LeftIndexDistal; case VRMBone.leftMiddleProximal: return HumanBodyBones.LeftMiddleProximal; case VRMBone.leftMiddleIntermediate: return HumanBodyBones.LeftMiddleIntermediate; case VRMBone.leftMiddleDistal: return HumanBodyBones.LeftMiddleDistal; case VRMBone.leftRingProximal: return HumanBodyBones.LeftRingProximal; case VRMBone.leftRingIntermediate: return HumanBodyBones.LeftRingIntermediate; case VRMBone.leftRingDistal: return HumanBodyBones.LeftRingDistal; case VRMBone.leftLittleProximal: return HumanBodyBones.LeftLittleProximal; case VRMBone.leftLittleIntermediate: return HumanBodyBones.LeftLittleIntermediate; case VRMBone.leftLittleDistal: return HumanBodyBones.LeftLittleDistal; case VRMBone.rightThumbProximal: return HumanBodyBones.RightThumbProximal; case VRMBone.rightThumbIntermediate: return HumanBodyBones.RightThumbIntermediate; case VRMBone.rightThumbDistal: return HumanBodyBones.RightThumbDistal; case VRMBone.rightIndexProximal: return HumanBodyBones.RightIndexProximal; case VRMBone.rightIndexIntermediate: return HumanBodyBones.RightIndexIntermediate; case VRMBone.rightIndexDistal: return HumanBodyBones.RightIndexDistal; case VRMBone.rightMiddleProximal: return HumanBodyBones.RightMiddleProximal; case VRMBone.rightMiddleIntermediate: return HumanBodyBones.RightMiddleIntermediate; case VRMBone.rightMiddleDistal: return HumanBodyBones.RightMiddleDistal; case VRMBone.rightRingProximal: return HumanBodyBones.RightRingProximal; case VRMBone.rightRingIntermediate: return HumanBodyBones.RightRingIntermediate; case VRMBone.rightRingDistal: return HumanBodyBones.RightRingDistal; case VRMBone.rightLittleProximal: return HumanBodyBones.RightLittleProximal; case VRMBone.rightLittleIntermediate: return HumanBodyBones.RightLittleIntermediate; case VRMBone.rightLittleDistal: return HumanBodyBones.RightLittleDistal; case VRMBone.upperChest: return HumanBodyBones.UpperChest; default: throw new System.InvalidOperationException(); } } public static VRMBone ToVrmBone(this HumanBodyBones val) { switch (val) { case HumanBodyBones.Hips: return VRMBone.hips; case HumanBodyBones.LeftUpperLeg: return VRMBone.leftUpperLeg; case HumanBodyBones.RightUpperLeg: return VRMBone.rightUpperLeg; case HumanBodyBones.LeftLowerLeg: return VRMBone.leftLowerLeg; case HumanBodyBones.RightLowerLeg: return VRMBone.rightLowerLeg; case HumanBodyBones.LeftFoot: return VRMBone.leftFoot; case HumanBodyBones.RightFoot: return VRMBone.rightFoot; case HumanBodyBones.Spine: return VRMBone.spine; case HumanBodyBones.Chest: return VRMBone.chest; case HumanBodyBones.Neck: return VRMBone.neck; case HumanBodyBones.Head: return VRMBone.head; case HumanBodyBones.LeftShoulder: return VRMBone.leftShoulder; case HumanBodyBones.RightShoulder: return VRMBone.rightShoulder; case HumanBodyBones.LeftUpperArm: return VRMBone.leftUpperArm; case HumanBodyBones.RightUpperArm: return VRMBone.rightUpperArm; case HumanBodyBones.LeftLowerArm: return VRMBone.leftLowerArm; case HumanBodyBones.RightLowerArm: return VRMBone.rightLowerArm; case HumanBodyBones.LeftHand: return VRMBone.leftHand; case HumanBodyBones.RightHand: return VRMBone.rightHand; case HumanBodyBones.LeftToes: return VRMBone.leftToes; case HumanBodyBones.RightToes: return VRMBone.rightToes; case HumanBodyBones.LeftEye: return VRMBone.leftEye; case HumanBodyBones.RightEye: return VRMBone.rightEye; case HumanBodyBones.Jaw: return VRMBone.jaw; case HumanBodyBones.LeftThumbProximal: return VRMBone.leftThumbProximal; case HumanBodyBones.LeftThumbIntermediate: return VRMBone.leftThumbIntermediate; case HumanBodyBones.LeftThumbDistal: return VRMBone.leftThumbDistal; case HumanBodyBones.LeftIndexProximal: return VRMBone.leftIndexProximal; case HumanBodyBones.LeftIndexIntermediate: return VRMBone.leftIndexIntermediate; case HumanBodyBones.LeftIndexDistal: return VRMBone.leftIndexDistal; case HumanBodyBones.LeftMiddleProximal: return VRMBone.leftMiddleProximal; case HumanBodyBones.LeftMiddleIntermediate: return VRMBone.leftMiddleIntermediate; case HumanBodyBones.LeftMiddleDistal: return VRMBone.leftMiddleDistal; case HumanBodyBones.LeftRingProximal: return VRMBone.leftRingProximal; case HumanBodyBones.LeftRingIntermediate: return VRMBone.leftRingIntermediate; case HumanBodyBones.LeftRingDistal: return VRMBone.leftRingDistal; case HumanBodyBones.LeftLittleProximal: return VRMBone.leftLittleProximal; case HumanBodyBones.LeftLittleIntermediate: return VRMBone.leftLittleIntermediate; case HumanBodyBones.LeftLittleDistal: return VRMBone.leftLittleDistal; case HumanBodyBones.RightThumbProximal: return VRMBone.rightThumbProximal; case HumanBodyBones.RightThumbIntermediate: return VRMBone.rightThumbIntermediate; case HumanBodyBones.RightThumbDistal: return VRMBone.rightThumbDistal; case HumanBodyBones.RightIndexProximal: return VRMBone.rightIndexProximal; case HumanBodyBones.RightIndexIntermediate: return VRMBone.rightIndexIntermediate; case HumanBodyBones.RightIndexDistal: return VRMBone.rightIndexDistal; case HumanBodyBones.RightMiddleProximal: return VRMBone.rightMiddleProximal; case HumanBodyBones.RightMiddleIntermediate: return VRMBone.rightMiddleIntermediate; case HumanBodyBones.RightMiddleDistal: return VRMBone.rightMiddleDistal; case HumanBodyBones.RightRingProximal: return VRMBone.rightRingProximal; case HumanBodyBones.RightRingIntermediate: return VRMBone.rightRingIntermediate; case HumanBodyBones.RightRingDistal: return VRMBone.rightRingDistal; case HumanBodyBones.RightLittleProximal: return VRMBone.rightLittleProximal; case HumanBodyBones.RightLittleIntermediate: return VRMBone.rightLittleIntermediate; case HumanBodyBones.RightLittleDistal: return VRMBone.rightLittleDistal; case HumanBodyBones.UpperChest: return VRMBone.upperChest; //case HumanBodyBones.LastBone: default: throw new System.InvalidOperationException(); } } } }