예제 #1
0
        public Ponto4D[] Animate(Limb limb)
        {
            switch (limb.GetBodyPart())
            {
            case BodyPart.LEFT_UPPER_LEG:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + leftUpperLeg_o_x, limb.GetRoot().Y + leftUpperLeg_o_y),
                    new Ponto4D(limb.GetFinal().X + leftUpperLeg_f_x, limb.GetFinal().Y + leftUpperLeg_f_y)
                });

            case BodyPart.LEFT_LOWER_LEG:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + leftLowerLeg_o_x, limb.GetRoot().Y + leftLowerLeg_o_y),
                    new Ponto4D(limb.GetFinal().X + leftLowerLeg_f_x, limb.GetFinal().Y + leftLowerLeg_f_y)
                });

            case BodyPart.RIGHT_UPPER_LEG:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + rightUpperLeg_o_x, limb.GetRoot().Y + rightUpperLeg_o_y),
                    new Ponto4D(limb.GetFinal().X + rightUpperLeg_f_x, limb.GetFinal().Y + rightUpperLeg_f_y)
                });

            case BodyPart.RIGHT_LOWER_LEG:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + rightLowerLeg_o_x, limb.GetRoot().Y + rightLowerLeg_o_y),
                    new Ponto4D(limb.GetFinal().X + rightLowerLeg_f_x, limb.GetFinal().Y + rightLowerLeg_f_y)
                });

            case BodyPart.LEFT_UPPER_ARM:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + leftUpperArm_o_x, limb.GetRoot().Y + leftUpperArm_o_y),
                    new Ponto4D(limb.GetFinal().X + leftUpperArm_f_x, limb.GetFinal().Y + leftUpperArm_f_y)
                });

            case BodyPart.LEFT_LOWER_ARM:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + leftLowerArm_o_x, limb.GetRoot().Y + leftLowerArm_o_y),
                    new Ponto4D(limb.GetFinal().X + leftLowerArm_f_x, limb.GetFinal().Y + leftLowerArm_f_y)
                });

            case BodyPart.RIGHT_UPPER_ARM:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + rightUpperArm_o_x, limb.GetRoot().Y + rightUpperArm_o_y),
                    new Ponto4D(limb.GetFinal().X + rightUpperArm_f_x, limb.GetFinal().Y + rightUpperArm_f_y)
                });

            case BodyPart.RIGHT_LOWER_ARM:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X + rightLowerArm_o_x, limb.GetRoot().Y + rightLowerArm_o_y),
                    new Ponto4D(limb.GetFinal().X + rightLowerArm_f_x, limb.GetFinal().Y + rightLowerArm_f_y)
                });

            default:
                return(new Ponto4D[] {
                    new Ponto4D(limb.GetRoot().X, limb.GetRoot().Y),
                    new Ponto4D(limb.GetFinal().X, limb.GetFinal().Y)
                });
            }
        }