private void AddStatue(Statues name)
        {
            IGestureSegment[] segments = null;
            switch (name)
            {
            case Statues.HandUp:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new HandUpSegment();
                }
                break;

            case Statues.HandRight:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new HandRightSegment();
                }
                break;

            case Statues.HandLeft:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new HandLeftSegment();
                }
                break;

            case Statues.HandBottom:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new HandBottomSegment();
                }
                break;

            case Statues.Reset:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new ResetSegment();
                }
                break;

            case Statues.Jump:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new JumpSegment();
                }
                break;

            case Statues.TurnRight:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new TurnRightSegment();
                }
                break;

            case Statues.TurnLeft:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new TurnLeftSegment();
                }
                break;

            case Statues.OpenRepeat:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new OpenRepeatSegment();
                }
                break;

            case Statues.CloseRepeat:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new CloseRepeatSegment();
                }
                break;

            case Statues.Stop:
                segments = new IGestureSegment[15];
                for (int i = 0; i < 15; i++)
                {
                    segments[i] = new StopSegment();
                }
                break;

            case Statues.GreenFlag:
                segments = new IGestureSegment[15];
                for (int i = 0; i < 15; i++)
                {
                    segments[i] = new GreenFlagSegment();
                }
                break;

            case Statues.Grow:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new GrowSegment();
                }
                break;

            case Statues.Shrink:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new ShrinkSegment();
                }
                break;

            case Statues.ChangeScene:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new ChangeSceneSegment();
                }
                break;

            case Statues.NormalSize:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new NormalSizeSegment();
                }
                break;

            case Statues.Show:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new ShowSegment();
                }
                break;

            case Statues.Hide:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new HideSegment();
                }
                break;

            case Statues.Speed:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new SpeedSegment();
                }
                break;

            case Statues.Wait:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new WaitSegment();
                }
                break;

            case Statues.TouchAnotherSprite:
                segments = new IGestureSegment[NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new TouchAnotherSpriteSegment();
                }
                break;

            case Statues.WaveRight:
                segments = new IGestureSegment[2 * NB_FRAME];
                for (int i = 0; i < NB_FRAME; i++)
                {
                    segments[i] = new WaveRightSegment1();
                }
                for (int i = NB_FRAME; i < 2 * NB_FRAME; i++)
                {
                    segments[i] = new WaveRightSegment2();
                }
                break;

            case Statues.FingerCount:
                segments = new IGestureSegment[20];
                for (int i = 0; i < 20; i++)
                {
                    segments[i] = new FingerCount();
                }
                break;

            default:
                break;
            }

            Gesture gesture = new Gesture(name.ToString(), segments);

            gesture.GestureDetected += OnGestureDetected;

            _gestures.Add(gesture);
        }
Пример #2
0
        /// <summary>
        /// Helper function to register all available
        /// </summary>
        private void RegisterGestures()
        {
            // define the gestures for the demo

            IRelativeGestureSegment[] clearLeftSegments = new IRelativeGestureSegment[1];
            ClearLeftSegment          clearLeftSegment1 = new ClearLeftSegment();

            clearLeftSegments[0] = clearLeftSegment1;
            m_gestureController.AddGesture("Clear", clearLeftSegments);


            IRelativeGestureSegment[] rightHandSelectSegments = new IRelativeGestureSegment[16];
            RightHandSelectSegment    rightHandSelectSegment  = new RightHandSelectSegment();

            for (int i = 0; i < 16; i++)
            {
                // gesture consists of the same thing 10 times
                rightHandSelectSegments[i] = rightHandSelectSegment;
            }
            m_gestureController.AddGesture("Select", rightHandSelectSegments);

            IRelativeGestureSegment[] moveForwardSegments = new IRelativeGestureSegment[3];
            moveForwardSegments[0] = new MoveForwardSegment();
            moveForwardSegments[1] = new MoveForwardSegment();
            moveForwardSegments[2] = new MoveForwardSegment();
            m_gestureController.AddGesture("MoveForward", moveForwardSegments);

            IRelativeGestureSegment[] moveBackwardSegments = new IRelativeGestureSegment[3];
            moveBackwardSegments[0] = new MoveBackwardSegment();
            moveBackwardSegments[1] = new MoveBackwardSegment();
            moveBackwardSegments[2] = new MoveBackwardSegment();
            m_gestureController.AddGesture("MoveBackward", moveBackwardSegments);

            //IRelativeGestureSegment[] joinedhandsSegments = new IRelativeGestureSegment[20];
            //JoinedHandsSegment1 joinedhandsSegment = new JoinedHandsSegment1 ();
            //for (int i = 0; i < 20; i++)
            //    {
            //    // gesture consists of the same thing 10 times
            //    joinedhandsSegments[i] = joinedhandsSegment;
            //    }
            //m_gestureController.AddGesture ("JoinedHands", joinedhandsSegments);

            IRelativeGestureSegment[] turnLeftSegments = new IRelativeGestureSegment[10];
            TurnLeftSegment           turnLeftSegment  = new TurnLeftSegment();

            for (int i = 0; i < 10; i++)
            {
                // gesture consists of the same thing 20 times
                turnLeftSegments[i] = turnLeftSegment;
            }
            m_gestureController.AddGesture("TurnLeft", turnLeftSegments);


            IRelativeGestureSegment[] turnRightSegments = new IRelativeGestureSegment[10];
            TurnRightSegment          turnRightSegment  = new TurnRightSegment();

            for (int i = 0; i < 10; i++)
            {
                // gesture consists of the same thing 20 times
                turnRightSegments[i] = turnRightSegment;
            }
            m_gestureController.AddGesture("TurnRight", turnRightSegments);

            //IRelativeGestureSegment[] swipeleftSegments = new IRelativeGestureSegment[3];
            //swipeleftSegments[0] = new SwipeLeftSegment1 ();
            //swipeleftSegments[1] = new SwipeLeftSegment2 ();
            //swipeleftSegments[2] = new SwipeLeftSegment3 ();
            //m_gestureController.AddGesture ("SwipeLeft", swipeleftSegments);

            //IRelativeGestureSegment[] swiperightSegments = new IRelativeGestureSegment[3];
            //swiperightSegments[0] = new SwipeRightSegment1 ();
            //swiperightSegments[1] = new SwipeRightSegment2 ();
            //swiperightSegments[2] = new SwipeRightSegment3 ();
            //m_gestureController.AddGesture ("SwipeRight", swiperightSegments);

            IRelativeGestureSegment[] waveRightSegments = new IRelativeGestureSegment[4];
            WaveRightSegment1         waveRightSegment1 = new WaveRightSegment1();
            WaveRightSegment2         waveRightSegment2 = new WaveRightSegment2();

            waveRightSegments[0] = waveRightSegment1;
            waveRightSegments[1] = waveRightSegment2;
            waveRightSegments[2] = waveRightSegment1;
            waveRightSegments[3] = waveRightSegment2;
            m_gestureController.AddGesture("WaveRight", waveRightSegments);

            //IRelativeGestureSegment[] waveLeftSegments = new IRelativeGestureSegment[6];
            //WaveLeftSegment1 waveLeftSegment1 = new WaveLeftSegment1 ();
            //WaveLeftSegment2 waveLeftSegment2 = new WaveLeftSegment2 ();
            //waveLeftSegments[0] = waveLeftSegment1;
            //waveLeftSegments[1] = waveLeftSegment2;
            //waveLeftSegments[2] = waveLeftSegment1;
            //waveLeftSegments[3] = waveLeftSegment2;
            //waveLeftSegments[4] = waveLeftSegment1;
            //waveLeftSegments[5] = waveLeftSegment2;
            //m_gestureController.AddGesture ("WaveLeft", waveLeftSegments);

            //IRelativeGestureSegment[] zoomInSegments = new IRelativeGestureSegment[3];
            //zoomInSegments[0] = new ZoomSegment1 ();
            //zoomInSegments[1] = new ZoomSegment2 ();
            //zoomInSegments[2] = new ZoomSegment3 ();
            //m_gestureController.AddGesture ("ZoomIn", zoomInSegments);

            //IRelativeGestureSegment[] zoomOutSegments = new IRelativeGestureSegment[3];
            //zoomOutSegments[0] = new ZoomSegment3 ();
            //zoomOutSegments[1] = new ZoomSegment2 ();
            //zoomOutSegments[2] = new ZoomSegment1 ();
            //m_gestureController.AddGesture ("ZoomOut", zoomOutSegments);

            //IRelativeGestureSegment[] swipeUpSegments = new IRelativeGestureSegment[3];
            //swipeUpSegments[0] = new SwipeUpSegment1 ();
            //swipeUpSegments[1] = new SwipeUpSegment2 ();
            //swipeUpSegments[2] = new SwipeUpSegment3 ();
            //m_gestureController.AddGesture ("SwipeUp", swipeUpSegments);

            //IRelativeGestureSegment[] swipeDownSegments = new IRelativeGestureSegment[3];
            //swipeDownSegments[0] = new SwipeDownSegment1 ();
            //swipeDownSegments[1] = new SwipeDownSegment2 ();
            //swipeDownSegments[2] = new SwipeDownSegment3 ();
            //m_gestureController.AddGesture ("SwipeDown", swipeDownSegments);
        }