public MainWindow() { InitializeComponent(); kinectModel = KinectModel.Instance; kinectModel.StartedTrackingNewBodies += KinectModel_StartedTrackingNewBodies; kinectModel.StoppedTrackingBodies += KinectModel_StoppedTrackingBodies; }
/// <summary> /// Initializes a new instance of the GestureDetector class along with the gesture frame source and reader /// </summary> /// <param name="kinectSensor">Active sensor to initialize the VisualGestureBuilderFrameSource object with</param> public GestureDetector(KinectModel model, KinectSensor kinectSensor) { this.kinectModel = model; if (kinectSensor == null) { throw new ArgumentNullException("kinectSensor"); } // create the vgb source. The associated body tracking ID will be set when a valid body frame arrives from the sensor. this.vgbFrameSource = new VisualGestureBuilderFrameSource(kinectSensor, 0); this.vgbFrameSource.TrackingIdLost += this.Source_TrackingIdLost; // open the reader for the vgb frames this.vgbFrameReader = this.vgbFrameSource.OpenReader(); if (this.vgbFrameReader != null) { this.vgbFrameReader.IsPaused = true; this.vgbFrameReader.FrameArrived += this.Reader_GestureFrameArrived; } // load the 'Seated' gesture from the gesture database using (VisualGestureBuilderDatabase database = new VisualGestureBuilderDatabase(this.gestureDatabase)) { // we could load all available gestures in the database with a call to vgbFrameSource.AddGestures(database.AvailableGestures), // but for this program, we only want to track one discrete gesture from the database, so we'll load it by name foreach (Gesture gesture in database.AvailableGestures) { // TODO: MH - Add all gestures. if (gesture.Name.Equals(this.waveGestureName)) { this.vgbFrameSource.AddGesture(gesture); } } } }