public GesturePartResult CheckGesture(Skeleton skeleton)
 {
     SkeletonAnalyzer analyzer = new SkeletonAnalyzer();
     analyzer.SetBodySegments(skeleton.Joints[JointType.ElbowRight], skeleton.Joints[JointType.ShoulderRight], skeleton.Joints[JointType.HipCenter]);
     if ((skeleton.Joints[JointType.HandRight].Position.X < skeleton.Joints[JointType.ShoulderRight].Position.X + 0.5) &&
         (skeleton.Joints[JointType.HandRight].Position.X > skeleton.Joints[JointType.HipCenter].Position.X)&&
         (skeleton.Joints[JointType.HandRight].Position.X < skeleton.Joints[JointType.ShoulderRight].Position.X+0.4))
     {
             if (analyzer.GetBodySegmentAngle(skeleton.Joints) > 10 && analyzer.GetBodySegmentAngle(skeleton.Joints) <60 && !Constants.isPunching)
             return GesturePartResult.Suceed;
         return GesturePartResult.Pausing;
     }
     else
         return GesturePartResult.Fail;
 }
 public GesturePartResult CheckGesture(Skeleton skeleton)
 {
     SkeletonAnalyzer analyzer = new SkeletonAnalyzer();
     analyzer.SetBodySegments(skeleton.Joints[JointType.HandLeft], skeleton.Joints[JointType.ElbowLeft], skeleton.Joints[JointType.ShoulderLeft]);
     if (skeleton.Joints[JointType.HandLeft].Position.Z < skeleton.Joints[JointType.ElbowLeft].Position.Z)
     {
         // Hands between shoulder and hip
         if ((skeleton.Joints[JointType.HandLeft].Position.Y > skeleton.Joints[JointType.HandRight].Position.Y)&&
             analyzer.GetBodySegmentAngle(skeleton.Joints) >160)
         {
             return GesturePartResult.Suceed;
         }
         return GesturePartResult.Pausing;
     }
     return GesturePartResult.Fail;
 }
Beispiel #3
0
        public GesturePartResult CheckGesture(Skeleton skeleton)
        {
            SkeletonAnalyzer analyzer = new SkeletonAnalyzer();

            analyzer.SetBodySegments(skeleton.Joints[JointType.HandLeft], skeleton.Joints[JointType.ElbowLeft], skeleton.Joints[JointType.ShoulderLeft]);
            if (skeleton.Joints[JointType.HandLeft].Position.Z < skeleton.Joints[JointType.ElbowLeft].Position.Z)
            {
                // Hands between shoulder and hip
                if ((skeleton.Joints[JointType.HandLeft].Position.Y > skeleton.Joints[JointType.HandRight].Position.Y) &&
                    analyzer.GetBodySegmentAngle(skeleton.Joints) > 160)
                {
                    return(GesturePartResult.Suceed);
                }
                return(GesturePartResult.Pausing);
            }
            return(GesturePartResult.Fail);
        }
        public GesturePartResult CheckGesture(Skeleton skeleton)
        {
            SkeletonAnalyzer analyzer = new SkeletonAnalyzer();

            analyzer.SetBodySegments(skeleton.Joints[JointType.ElbowRight], skeleton.Joints[JointType.ShoulderRight], skeleton.Joints[JointType.HipCenter]);
            if ((skeleton.Joints[JointType.HandRight].Position.X < skeleton.Joints[JointType.ShoulderRight].Position.X + 0.5) &&
                (skeleton.Joints[JointType.HandRight].Position.X > skeleton.Joints[JointType.HipCenter].Position.X) &&
                (skeleton.Joints[JointType.HandRight].Position.X < skeleton.Joints[JointType.ShoulderRight].Position.X + 0.4))
            {
                if (analyzer.GetBodySegmentAngle(skeleton.Joints) > 10 && analyzer.GetBodySegmentAngle(skeleton.Joints) < 60 && !Constants.isPunching)
                {
                    return(GesturePartResult.Suceed);
                }
                return(GesturePartResult.Pausing);
            }
            else
            {
                return(GesturePartResult.Fail);
            }
        }