public MainWindow()
        {
            this.sensor = KinectSensor.GetDefault();

            this.sensor.Open();

            this.StatusText = "Waiting for Gesture...";

            this.bfR = this.sensor.BodyFrameSource.OpenReader();

            this.cFR = this.sensor.ColorFrameSource.OpenReader();

            this.bfR.FrameArrived += this.Reader_BodyFrameArrived;

            this.cFR.FrameArrived += this.Reader_ColorFrameArrived;

            this.gestureDetectorList = new List <GestureDetector>();

            this.InitializeComponent();

            int maxBodies = this.sensor.BodyFrameSource.BodyCount;

            for (int i = 0; i < maxBodies; ++i)
            {
                GestureResultView result   = new GestureResultView(i, false, false, 0.0f);
                GestureDetector   detector = new GestureDetector(this.sensor, result);
                this.gestureDetectorList.Add(detector);
            }
        }
Beispiel #2
0
        public GestureDetector(KinectSensor sensor, GestureResultView gestureResultView)
        {
            if (sensor == null)
            {
                throw new ArgumentNullException("sensor");
            }

            if (gestureResultView == null)
            {
                throw new ArgumentNullException("gestureResultView");
            }

            this.GestureResultView = gestureResultView;

            //Create the VGB source
            this.vgbFrameSource = new VisualGestureBuilderFrameSource(sensor, 0);
            this.vgbFrameSource.TrackingIdLost += this.Source_TrackingIdLost;

            this.vgbFrameReader = this.vgbFrameSource.OpenReader();
            if (this.vgbFrameReader != null)
            {
                this.vgbFrameReader.IsPaused      = true;
                this.vgbFrameReader.FrameArrived += this.Reader_GestureFrameArrived;
            }

            using (VisualGestureBuilderDatabase dB = new VisualGestureBuilderDatabase(this.gestureDatabase))
            {
                foreach (Gesture gesture in dB.AvailableGestures)
                {
                    if (gesture.Name.Equals(this.waveGestureName))
                    {
                        this.vgbFrameSource.AddGesture(gesture);
                    }
                }
            }
        }