public GestureDetector(KinectSensor kN, GestureResultView gRV)
        {
            if (kN == null)
            {
                throw new ArgumentNullException("kN");
            }
            if (gRV == null)
            {
                throw new ArgumentNullException("gRV");
            }

            this.GestureResultView = gRV;

            this.vgbFrameSource = new VisualGestureBuilderFrameSource(kN, 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.waveName))
                    {
                        this.vgbFrameSource.AddGesture(gesture);
                    }
                }
            }
        }
        void setDetectorList()
        {
            this.gestureDetectorList = new List <GestureDetector>();
            GestureResultView result   = new GestureResultView(false, false, 0.0f);
            GestureDetector   detector = new GestureDetector(this.kinect, result);

            result.PropertyChanged += GestureResult_PropertyChanged;
            this.gestureDetectorList.Add(detector);
        }