public Gesture CreateGesture(int identifier)
        {
            IGesturePart seg1 = new CircleGesturePart_1();
            IGesturePart seg2 = new CircleGesturePart_2();
            IGesturePart seg3 = new CircleGesturePart_3();
            IGesturePart seg4 = new CircleGesturePart_4();

            IGesturePart seg11 = new SwipeGesturePart_1();
            IGesturePart seg12 = new SwipeGesturePart_2();
            IGesturePart seg13 = new SwipeGesturePart_3();

            IGesturePart[] parts;

            if (identifier == GestureIdentifier.CIRCLE_CLOCKWISE_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    seg1, seg2, seg3, seg4
                };
                return(new SequenceDependentGesture(parts, identifier, 50));
            }
            if (identifier == GestureIdentifier.CIRCLE_COUNTER_CLOCKWISE_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    seg4, seg3, seg2, seg1
                };
                return(new SequenceDependentGesture(parts, identifier, 50));
            }

            if (identifier == GestureIdentifier.SWIPE_TO_LEFT_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    seg11, seg12, seg13
                };
                return(new SequenceDependentGesture(parts, identifier, 50));
            }
            return(null);
        }
        public void Start()
        {
            #region IGesturePartEnums

            /// <summary>
            /// enums for storing the gesture patterns
            /// </summary>
            IGesturePart[] RightHandQuicklyClosed1 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed2 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed3 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed4 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed5 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed6 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.closed, Gesture.closed,Gesture.closed,Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed7 = new IGesturePart[]
            {
            Gesture.open, Gesture.closed,Gesture.closed, Gesture.closed, Gesture.closed,Gesture.closed,Gesture.closed,Gesture.closed, Gesture.open
            };

            IGesturePart[] RightHandQuicklyOpened = new IGesturePart[]
                {
                Gesture.closed, Gesture.open, Gesture.closed
                };
            IGesturePart[] RightHandOpen = new IGesturePart[]
                {
                //1x closed
                //Gesture.closed,
                //15x open
                Gesture.open, Gesture.open, Gesture.open, Gesture.open, Gesture.open,
                Gesture.open, Gesture.open, //Gesture.open, Gesture.open, Gesture.open,
               // Gesture.open, Gesture.open, Gesture.open, Gesture.open, Gesture.open
                };
            IGesturePart[] RightHandClosed = new IGesturePart[]
                {
                //1x open
                //Gesture.open,
                //15x closed
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed,
                Gesture.closed, Gesture.closed, //Gesture.closed, Gesture.closed, Gesture.closed,
                //Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed
                //Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed
                };

            #endregion

            //prepare gesture
            gestureClosed = new Gesture(RightHandClosed);
            gestureClosed.name = "gestureClosed";
            gestureOpen = new Gesture(RightHandOpen);
            gestureOpen.name = "gestureOpen";
            gestureQuicklyClosed1 = new Gesture(RightHandQuicklyClosed1);
            gestureQuicklyClosed2 = new Gesture(RightHandQuicklyClosed2);
            gestureQuicklyClosed3 = new Gesture(RightHandQuicklyClosed3);
            gestureQuicklyClosed4 = new Gesture(RightHandQuicklyClosed4);
            gestureQuicklyClosed5 = new Gesture(RightHandQuicklyClosed5);
            gestureQuicklyClosed6 = new Gesture(RightHandQuicklyClosed6);
            gestureQuicklyClosed7 = new Gesture(RightHandQuicklyClosed7);
            gestureQuicklyClosed1.name = "gestureQuicklyClosed1";
            gestureQuicklyClosed2.name = "gestureQuicklyClosed2";
            gestureQuicklyClosed3.name = "gestureQuicklyClosed3";
            gestureQuicklyClosed4.name = "gestureQuicklyClosed4";
            gestureQuicklyClosed2.name = "gestureQuicklyClosed5";
            gestureQuicklyClosed3.name = "gestureQuicklyClosed6";
            gestureQuicklyClosed4.name = "gestureQuicklyClosed7";
            gestureQuicklyOpen = new Gesture(RightHandQuicklyOpened);
            gestureQuicklyOpen.name = "gestureQuicklyOpen";
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Default constructor 
 /// </summary>
 /// 
 public Gesture(IGesturePart[] pattern)
 {
     open = new GesturePart(Microsoft.Kinect.HandState.Open);
     closed = new GesturePart(Microsoft.Kinect.HandState.Closed);
     parts = pattern;
 }
        public Gesture CreateGesture(int identifier)
        {
            //choose right hand for default
            bool leftHand = false;

            //but check whether left hand has been chosen
            if (identifier == GestureIdentifier.LEFT_HAND_CLOSED_GESTURE ||
                identifier == GestureIdentifier.LEFT_HAND_OPEN_GESTURE ||
                identifier == GestureIdentifier.LEFT_HAND_QUICKLY_CLOSED_GESTURE ||
                identifier == GestureIdentifier.LEFT_HAND_QUICKLY_OPEN_GESTURE)
            {
                leftHand = true;
            }

            IGesturePart closed = new HandGesturePart(leftHand, HandState.Closed);
            IGesturePart open   = new HandGesturePart(leftHand, HandState.Open);

            IGesturePart[] parts;

            if (identifier == GestureIdentifier.LEFT_HAND_CLOSED_GESTURE || identifier == GestureIdentifier.RIGHT_HAND_CLOSED_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    //1x open
                    open,
                    //15x closed
                    closed, closed, closed, closed, closed,
                    closed, closed, closed, closed, closed,
                    closed, closed, closed, closed, closed,
                };
                return(new FrameDependentGesture(parts, identifier));
            }
            if (identifier == GestureIdentifier.LEFT_HAND_OPEN_GESTURE || identifier == GestureIdentifier.RIGHT_HAND_OPEN_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    //1x closed
                    closed,
                    //15x open
                    open, open, open, open, open,
                    open, open, open, open, open,
                    open, open, open, open, open,
                };
                return(new FrameDependentGesture(parts, identifier));
            }
            if (identifier == GestureIdentifier.LEFT_HAND_QUICKLY_CLOSED_GESTURE || identifier == GestureIdentifier.RIGHT_HAND_QUICKLY_CLOSED_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    open, closed, open
                };
                return(new SequenceDependentGesture(parts, identifier, 10));
            }
            if (identifier == GestureIdentifier.LEFT_HAND_QUICKLY_OPEN_GESTURE || identifier == GestureIdentifier.RIGHT_HAND_QUICKLY_OPEN_GESTURE)
            {
                parts = new IGesturePart[]
                {
                    closed, open, closed
                };
                return(new SequenceDependentGesture(parts, identifier, 10));
            }
            //default case:
            return(null);
        }
        public void Start()
        {
            #region IGesturePartEnums

            /// <summary>
            /// enums for storing the gesture patterns
            /// </summary>
            IGesturePart[] RightHandQuicklyClosed1 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed2 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed3 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed4 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed5 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed6 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };
            IGesturePart[] RightHandQuicklyClosed7 = new IGesturePart[]
            {
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.open
            };

            IGesturePart[] RightHandQuicklyOpened = new IGesturePart[]
            {
                Gesture.closed, Gesture.open, Gesture.closed
            };
            IGesturePart[] RightHandOpen = new IGesturePart[]
            {
                //1x closed
                //Gesture.closed,
                //15x open
                Gesture.open, Gesture.open, Gesture.open, Gesture.open, Gesture.open,
                Gesture.open, Gesture.open, //Gesture.open, Gesture.open, Gesture.open,
                // Gesture.open, Gesture.open, Gesture.open, Gesture.open, Gesture.open
            };
            IGesturePart[] RightHandClosed = new IGesturePart[]
            {
                //1x open
                //Gesture.open,
                //15x closed
                Gesture.open, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed,
                Gesture.closed, Gesture.closed, //Gesture.closed, Gesture.closed, Gesture.closed,
                //Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed
                //Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed, Gesture.closed
            };

            #endregion

            //prepare gesture
            gestureClosed              = new Gesture(RightHandClosed);
            gestureClosed.name         = "gestureClosed";
            gestureOpen                = new Gesture(RightHandOpen);
            gestureOpen.name           = "gestureOpen";
            gestureQuicklyClosed1      = new Gesture(RightHandQuicklyClosed1);
            gestureQuicklyClosed2      = new Gesture(RightHandQuicklyClosed2);
            gestureQuicklyClosed3      = new Gesture(RightHandQuicklyClosed3);
            gestureQuicklyClosed4      = new Gesture(RightHandQuicklyClosed4);
            gestureQuicklyClosed5      = new Gesture(RightHandQuicklyClosed5);
            gestureQuicklyClosed6      = new Gesture(RightHandQuicklyClosed6);
            gestureQuicklyClosed7      = new Gesture(RightHandQuicklyClosed7);
            gestureQuicklyClosed1.name = "gestureQuicklyClosed1";
            gestureQuicklyClosed2.name = "gestureQuicklyClosed2";
            gestureQuicklyClosed3.name = "gestureQuicklyClosed3";
            gestureQuicklyClosed4.name = "gestureQuicklyClosed4";
            gestureQuicklyClosed2.name = "gestureQuicklyClosed5";
            gestureQuicklyClosed3.name = "gestureQuicklyClosed6";
            gestureQuicklyClosed4.name = "gestureQuicklyClosed7";
            gestureQuicklyOpen         = new Gesture(RightHandQuicklyOpened);
            gestureQuicklyOpen.name    = "gestureQuicklyOpen";
        }