Exemplo n.º 1
0
        public static CompositeBodyTransform CrossoverArmStretchTransform(JointSide sideOfStretchedArm)
        {
            JointSide      oppositeSide;
            JointTransform stretchDirectionTransform;

            // First set the stretch direction and the opposite side (helper arm side)
            if (sideOfStretchedArm == JointSide.Left)
            {
                oppositeSide = JointSide.Right;
                stretchDirectionTransform = new SetJointDirectionTransform(1, 0, 0);
            }
            else
            {
                oppositeSide = JointSide.Left;
                stretchDirectionTransform = new SetJointDirectionTransform(-1, 0, 0);
            }

            // Get all joint types for both stretched and support arm
            JointType stretchedElbow = JointTypeHelper.GetSidedJointType(SidedJointName.Elbow, sideOfStretchedArm);
            JointType stretchedWrist = JointTypeHelper.GetSidedJointType(SidedJointName.Wrist, sideOfStretchedArm);

            JointType supportElbow = JointTypeHelper.GetSidedJointType(SidedJointName.Elbow, oppositeSide);
            JointType supportWrist = JointTypeHelper.GetSidedJointType(SidedJointName.Wrist, oppositeSide);


            // Apply the transforms in both arms
            return(new CompositeBodyTransform()
                   .Compose(stretchedElbow, stretchDirectionTransform)
                   .Compose(stretchedWrist, stretchDirectionTransform)
                   .Compose(supportElbow, new SetJointDirectionTransform(0, -1, 0))
                   .Compose(supportWrist, new SetJointDirectionTransform(0, 1, 0)));
        }
Exemplo n.º 2
0
        public static BodyTransform CrossoverArmStretchTransform(JointSide sideOfStretchedArm)
        {
            JointSide oppositeSide;
            JointTransform stretchDirectionTransform;

            // First set the stretch direction and the opposite side (helper arm side)
            if (sideOfStretchedArm == JointSide.Left)
            {
                oppositeSide = JointSide.Right;
                stretchDirectionTransform = new SetJointDirectionTransform(1, 0, 0);
            }
            else
            {
                oppositeSide = JointSide.Left;
                stretchDirectionTransform = new SetJointDirectionTransform(-1, 0, 0);
            }

            // Get all joint types for both stretched and support arm
            JointType stretchedElbow = JointTypeHelper.GetSidedJointType(SidedJointName.Elbow, sideOfStretchedArm);
            JointType stretchedWrist = JointTypeHelper.GetSidedJointType(SidedJointName.Wrist, sideOfStretchedArm);

            JointType supportElbow = JointTypeHelper.GetSidedJointType(SidedJointName.Elbow, oppositeSide);
            JointType supportWrist = JointTypeHelper.GetSidedJointType(SidedJointName.Wrist, oppositeSide);

            // Apply the transforms in both arms
            return new BodyTransform()
                .Compose(stretchedElbow, stretchDirectionTransform)
                .Compose(stretchedWrist, stretchDirectionTransform)
                .Compose(supportElbow, new SetJointDirectionTransform(0, -1, 0))
                .Compose(supportWrist, new SetJointDirectionTransform(0, 1, 0));
        }