public void startElementToKinect() { // Obtiene el sensor del kinect (Solo uno) this.kinectSensor = KinectSensor.GetDefault(); // Abre el sensor this.kinectSensor.Open(); // Actualiza el estado del kinect this.UpdateKinectStatusText(); // Obtiene los frames respectivo del kinect this.bodyFrameReader = this.kinectSensor.BodyFrameSource.OpenReader(); // Objeto que renderiza el cuerpo en la interfaz de usuario this.kinectBodyView = new KinectBodyView(this.kinectSensor, this.headerView); // Instancia el objeto con valores por defecto this.gestureResultView = new GestureResultView(false, -1.0f, this.headerView.Trainer.functionalMovement.steps.Count); // Herramienta que detecta las posturas Con el sensor kinect this.gestureDetector = new GestureDetector(this.kinectSensor, this.gestureResultView, this.headerView.Trainer.GBD); // Asigna los datos a la interfaz this.kinectBodyViewbox.DataContext = this.kinectBodyView; this.gestureResultGrid.DataContext = this.gestureResultView; }
/// <summary> /// Constructor que instancias los atributos correspondientes /// </summary> /// <param name="kinectSensor"></param> /// <param name="gestureResultView"></param> public GestureDetector(KinectSensor kinectSensor, GestureResultView gestureResultView, string pathGBD) { // Verifica si el kinect esta conectado if (kinectSensor == null) { throw new ArgumentNullException("kinectSensor"); } // Verifica si existe el objeto que almacenara los resultados if (gestureResultView == null) { throw new ArgumentNullException("gestureResultView"); } // Le asigna los valores correspondiente a los atributos globales this.GestureResultView = gestureResultView; // Crea el objeto para asociar los recursos, respecto al cuerpo que se esta analizando this.vgbFrameSource = new VisualGestureBuilderFrameSource(kinectSensor, 0); // Obtiene los valores de lecturas (En caso que no se tenga la lectura se pausa) this.vgbFrameReader = this.vgbFrameSource.OpenReader(); if (this.vgbFrameReader != null) { this.vgbFrameReader.IsPaused = true; } // Obtiene toda la informacion de la base de datos using (var database = new VisualGestureBuilderDatabase(pathGBD)) { this.vgbFrameSource.AddGestures(database.AvailableGestures); } }