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); } }
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); } } } }