public static IEnumerable <Pose> PassiveExternalRotation(int numberOfRepetitions = 4) { // Create the left pose and set both arms to point down CompositeBodyTransform leftTransform = new CompositeBodyTransform(); 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 CompositeBodyTransform rightTransform = new CompositeBodyTransform(); 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); } }
// Gestures as a List of Poses public static IEnumerable <Pose> CrossoverArmStretch(int numberOfRepetitions = 4) { var startTransform = BodyTransformBuilder.ArmsDownTransform(); yield return(new Pose("ArmsDownTransform", startTransform, BodyRestrictionBuilder.ShouldersRelaxedRestriction())); var leftStretch = BodyTransformBuilder.CrossoverArmStretchTransform(JointSide.Left); var rightStretch = BodyTransformBuilder.CrossoverArmStretchTransform(JointSide.Right); for (int i = 0; i < numberOfRepetitions; ++i) { yield return(new Pose("leftStretch", leftStretch)); yield return(new Pose("rightStretch", rightStretch)); } }