public static IEnumerable <Pose> ShoulderAbduction(int numberOfRepetitions = 3) { BodyTransform leftUp = new BodyTransform(); leftUp = leftUp.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(-1, 0, 0)); leftUp = leftUp.Compose(JointType.WristLeft, new SetJointDirectionTransform(-1, 0, 0)); leftUp = leftUp.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); leftUp = leftUp.Compose(JointType.WristRight, new SetJointDirectionTransform(0, -1, 0)); Pose leftPose = new Pose("leftUp", leftUp); BodyTransform rightUp = new BodyTransform(); rightUp = rightUp.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); rightUp = rightUp.Compose(JointType.WristLeft, new SetJointDirectionTransform(0, -1, 0)); rightUp = rightUp.Compose(JointType.ElbowRight, new SetJointDirectionTransform(1, 0, 0)); rightUp = rightUp.Compose(JointType.WristRight, new SetJointDirectionTransform(1, 0, 0)); Pose rightPose = new Pose("rightUp", rightUp); for (int i = 0; i < numberOfRepetitions; ++i) { yield return(leftPose); yield return(rightPose); } }
public static IEnumerable <Pose> PassiveExternalRotation(int numberOfRepetitions = 4) { // Create the left pose and set both arms to point down BodyTransform leftTransform = new BodyTransform(); leftTransform = leftTransform.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); leftTransform = leftTransform.Compose(JointType.WristLeft, new SetJointDirectionTransform(-0.7, 0, 0.7)); leftTransform = leftTransform.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); leftTransform = leftTransform.Compose(JointType.WristRight, new SetJointDirectionTransform(0, 0, 1)); Pose leftPose = new Pose("DontTwistHipRestriction-l", leftTransform, BodyRestrictionBuilder.DontTwistHipRestriction(5)); // Create the left pose and set both arms to point down BodyTransform rightTransform = new BodyTransform(); rightTransform = rightTransform.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); rightTransform = rightTransform.Compose(JointType.WristLeft, new SetJointDirectionTransform(0, 0, 1)); rightTransform = rightTransform.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); rightTransform = rightTransform.Compose(JointType.WristRight, new SetJointDirectionTransform(0.7, 0, 0.7)); Pose rightPose = new Pose("DontTwistHipRestriction-r", rightTransform, BodyRestrictionBuilder.DontTwistHipRestriction(5)); for (int i = 0; i < numberOfRepetitions; ++i) { yield return(leftPose); yield return(rightPose); } }
public BodyTransform Aggregate(Func <JointType, BodyTransform> func) { var result = new BodyTransform(); foreach (var joint in this.Joints) { var that = func(joint); result = result.Compose(that); } return(result); }
public static IEnumerable<Pose> ShoulderFlexion(int numberOfRepetitions = 3) { BodyTransform leftUp = new BodyTransform(); leftUp = leftUp.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, 1, 0)); leftUp = leftUp.Compose(JointType.WristLeft, new SetJointDirectionTransform(0, 1, 0)); leftUp = leftUp.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); leftUp = leftUp.Compose(JointType.WristRight, new SetJointDirectionTransform(0, -1, 0)); Pose leftPose = new Pose("leftUp", leftUp); BodyTransform rightUp = new BodyTransform(); rightUp = rightUp.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); rightUp = rightUp.Compose(JointType.WristLeft, new SetJointDirectionTransform(0, -1, 0)); rightUp = rightUp.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, 1, 0)); rightUp = rightUp.Compose(JointType.WristRight, new SetJointDirectionTransform(0, 1, 0)); Pose rightPose = new Pose("rightUp", rightUp); for (int i = 0; i < numberOfRepetitions; ++i) { yield return (leftPose); yield return (rightPose); } }
public static IEnumerable<Pose> PassiveExternalRotation(int numberOfRepetitions = 4) { // Create the left pose and set both arms to point down BodyTransform leftTransform = new BodyTransform(); leftTransform = leftTransform.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); leftTransform = leftTransform.Compose(JointType.WristLeft, new SetJointDirectionTransform(-0.7, 0, 0.7)); leftTransform = leftTransform.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); leftTransform = leftTransform.Compose(JointType.WristRight, new SetJointDirectionTransform(0, 0, 1)); Pose leftPose = new Pose("DontTwistHipRestriction-l", leftTransform, BodyRestrictionBuilder.DontTwistHipRestriction(5)); // Create the left pose and set both arms to point down BodyTransform rightTransform = new BodyTransform(); rightTransform = rightTransform.Compose(JointType.ElbowLeft, new SetJointDirectionTransform(0, -1, 0)); rightTransform = rightTransform.Compose(JointType.WristLeft, new SetJointDirectionTransform(0, 0, 1)); rightTransform = rightTransform.Compose(JointType.ElbowRight, new SetJointDirectionTransform(0, -1, 0)); rightTransform = rightTransform.Compose(JointType.WristRight, new SetJointDirectionTransform(0.7, 0, 0.7)); Pose rightPose = new Pose("DontTwistHipRestriction-r", rightTransform, BodyRestrictionBuilder.DontTwistHipRestriction(5)); for (int i = 0; i < numberOfRepetitions; ++i) { yield return (leftPose); yield return (rightPose); } }