public static Side ToLimbIKSide( LimbIKLocation limbIKLocation ) { switch( limbIKLocation ) { case LimbIKLocation.LeftLeg: return Side.Left; case LimbIKLocation.RightLeg: return Side.Right; case LimbIKLocation.LeftArm: return Side.Left; case LimbIKLocation.RightArm: return Side.Right; } return Side.None; }
public static LimbIKType ToLimbIKType( LimbIKLocation limbIKLocation ) { switch( limbIKLocation ) { case LimbIKLocation.LeftLeg: return LimbIKType.Leg; case LimbIKLocation.RightLeg: return LimbIKType.Leg; case LimbIKLocation.LeftArm: return LimbIKType.Arm; case LimbIKLocation.RightArm: return LimbIKType.Arm; } return LimbIKType.Unknown; }
public static LimbIKType ToLimbIKType(LimbIKLocation limbIKLocation) { switch (limbIKLocation) { case LimbIKLocation.LeftLeg: return(LimbIKType.Leg); case LimbIKLocation.RightLeg: return(LimbIKType.Leg); case LimbIKLocation.LeftArm: return(LimbIKType.Arm); case LimbIKLocation.RightArm: return(LimbIKType.Arm); } return(LimbIKType.Unknown); }
public static Side ToLimbIKSide(LimbIKLocation limbIKLocation) { switch (limbIKLocation) { case LimbIKLocation.LeftLeg: return(Side.Left); case LimbIKLocation.RightLeg: return(Side.Right); case LimbIKLocation.LeftArm: return(Side.Left); case LimbIKLocation.RightArm: return(Side.Right); } return(Side.None); }
public LimbIK( FullBodyIK fullBodyIK, LimbIKLocation limbIKLocation ) { Assert( fullBodyIK != null ); if( fullBodyIK == null ) { return; } _settings = fullBodyIK.settings; _internalValues = fullBodyIK.internalValues; _limbIKLocation = limbIKLocation; _limbIKType = FullBodyIK.ToLimbIKType( limbIKLocation ); _limbIKSide = FullBodyIK.ToLimbIKSide( limbIKLocation ); if( _limbIKType == LimbIKType.Leg ) { var legBones = (_limbIKSide == Side.Left) ? fullBodyIK.leftLegBones : fullBodyIK.rightLegBones; var legEffectors = (_limbIKSide == Side.Left) ? fullBodyIK.leftLegEffectors : fullBodyIK.rightLegEffectors; _beginBone = legBones.leg; _bendingBone = legBones.knee; _endBone = legBones.foot; _bendingEffector = legEffectors.knee; _endEffector = legEffectors.foot; } else if( _limbIKType == LimbIKType.Arm ) { var armBones = (_limbIKSide == Side.Left) ? fullBodyIK.leftArmBones : fullBodyIK.rightArmBones; var armEffectors = (_limbIKSide == Side.Left) ? fullBodyIK.leftArmEffectors : fullBodyIK.rightArmEffectors; _beginBone = armBones.arm; _bendingBone = armBones.elbow; _endBone = armBones.wrist; _bendingEffector = armEffectors.elbow; _endEffector = armEffectors.wrist; _PrepareRollBones( ref _armRollBones, armBones.armRoll ); _PrepareRollBones( ref _elbowRollBones, armBones.elbowRoll ); } _Prepare( fullBodyIK ); }