/// <summary> /// Registers gestures to be tracked by the Kinect /// </summary> static void RegisterGestures() { double hBound = 5; double vBound = 6; Double.TryParse(ConfigurationManager.AppSettings["horBound"], out hBound); Double.TryParse(ConfigurationManager.AppSettings["verBound"], out vBound); leftBoundary = -(double)hBound * (300.00 / (double)7); // Left treshold needed for swipe rightBoundary = -leftBoundary; // Right treshold needed for swipe topBoundary = (double)vBound * (200.00 / (double)7); //Top treshold botBoundary = -topBoundary; //Bottom treshold double actHeight = 0; Double.TryParse(ConfigurationManager.AppSettings["kinectHeight"], out actHeight); adjustedHeight = actHeight - baseKinectHeight; XnMPointDenoiser pointFilter = new XnMPointDenoiser(); XnMPointControl pointControl = new XnMPointControl(); pointControl.PointUpdate += new EventHandler <PointBasedEventArgs>(control_PointUpdate); pointFilter.PointCreate += new EventHandler <PointBasedEventArgs>(control_PointCreate); XnMSwipeDetector swipeDetector = new XnMSwipeDetector(true); swipeDetector.MotionSpeedThreshold = 0.8f; swipeDetector.MotionTime = 180; //350 swipeDetector.SteadyDuration = 150; //200 swipeDetector.SwipeRight += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeRight); swipeDetector.SwipeLeft += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeLeft); swipeDetector.SwipeDown += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeDown); swipeDetector.SwipeUp += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeUp); XnMSteadyDetector steadyDetector = new XnMSteadyDetector(); steadyDetector.DetectionDuration = 800; steadyDetector.Steady += new EventHandler <SteadyEventArgs>(steadyDetector_Steady); //XnMPushDetector pushDetector = new XnMPushDetector(); //pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); XnMBroadcaster broadcaster = new XnMBroadcaster(); pointFilter.AddListener(pointControl); broadcaster.AddListener(pointFilter); broadcaster.AddListener(swipeDetector); broadcaster.AddListener(steadyDetector); //broadcaster.AddListener(steadyDetector); HorSwipeStarted = VertSwipeStarted = true; sessionManager.AddListener(broadcaster); }
/// <summary> /// Registers gestures to be tracked by the Kinect /// </summary> static void RegisterGestures() { double hBound = 5; double vBound = 6; Double.TryParse(ConfigurationManager.AppSettings["horBound"], out hBound); Double.TryParse(ConfigurationManager.AppSettings["verBound"], out vBound); leftBoundary = -(double)hBound * (300.00 / (double)7); // Left treshold needed for swipe rightBoundary = -leftBoundary; // Right treshold needed for swipe topBoundary = (double)vBound * (200.00 / (double)7); //Top treshold botBoundary = -topBoundary; //Bottom treshold double actHeight = 0; Double.TryParse(ConfigurationManager.AppSettings["kinectHeight"], out actHeight); adjustedHeight = actHeight - baseKinectHeight; XnMPointDenoiser pointFilter = new XnMPointDenoiser(); XnMPointControl pointControl = new XnMPointControl(); pointControl.PointUpdate += new EventHandler<PointBasedEventArgs>(control_PointUpdate); pointFilter.PointCreate += new EventHandler<PointBasedEventArgs>(control_PointCreate); XnMSwipeDetector swipeDetector = new XnMSwipeDetector(true); swipeDetector.MotionSpeedThreshold = 0.8f; swipeDetector.MotionTime = 180; //350 swipeDetector.SteadyDuration = 150; //200 swipeDetector.SwipeRight += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeRight); swipeDetector.SwipeLeft += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeLeft); swipeDetector.SwipeDown += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeDown); swipeDetector.SwipeUp += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeUp); XnMSteadyDetector steadyDetector = new XnMSteadyDetector(); steadyDetector.DetectionDuration = 800; steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady); //XnMPushDetector pushDetector = new XnMPushDetector(); //pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); XnMBroadcaster broadcaster = new XnMBroadcaster(); pointFilter.AddListener(pointControl); broadcaster.AddListener(pointFilter); broadcaster.AddListener(swipeDetector); broadcaster.AddListener(steadyDetector); //broadcaster.AddListener(steadyDetector); HorSwipeStarted = VertSwipeStarted = true; sessionManager.AddListener(broadcaster); }
public void Init() { context = new XnMOpenNIContext(); context.Init(); sessionManager = new XnMSessionManager(context, "Click,Wave", "RaiseHand"); sessionManager.SessionStarted += new EventHandler<PointEventArgs>(sessionManager_SessionStarted); sessionManager.SessionEnded += new EventHandler(sessionManager_SessionEnded); //slider2D = new XnMSelectableSlider2D(xItems, yItems); //slider2D.Activate += new EventHandler(slider2D_Activate); //slider2D.Deactivate += new EventHandler(slider2D_Deactivate); //slider2D.ValueChanged += new EventHandler<SelectableSlider2DValueChangedEventArgs>(slider2D_ValueChanged); //slider2D.MessageUpdate += new EventHandler<OneMessageEventArgs>(slider2D_MessageUpdate); //slider2D.ItemHovered += new EventHandler<SelectableSlider2DHoverEventArgs>(slider2D_ItemHovered); //slider2D.ItemSelected += new EventHandler<SelectableSlider2DSelectEventArgs>(slider2D_ItemSelected); //pointDenoiser = new XnMPointDenoiser(); //pointDenoiser.AddListener(slider2D); //flowRouter = new XnMFlowRouter(); //flowRouter.SetActiveControl(pointDenoiser); circleDetector = new XnMCircleDetector(); circleDetector.Circle += new EventHandler<CircleEventArgs>(circleDetector_Circle); pushDetector = new XnMPushDetector(); pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); swipeDetector = new XnMSwipeDetector(true); swipeDetector.GeneralSwipe += new EventHandler<SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); steadyDetector = new XnMSteadyDetector(5, 5000); steadyDetector.Activate += new EventHandler(steadyDetector_Activate); steadyDetector.Deactivate += new EventHandler(steadyDetector_Deactivate); steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady); //sessionManager.AddListener(flowRouter); sessionManager.AddListener(circleDetector); sessionManager.AddListener(pushDetector); sessionManager.AddListener(swipeDetector); sessionManager.AddListener(steadyDetector); Thread th = new Thread(new ThreadStart(SpinInfinite)); th.Priority = ThreadPriority.Lowest; th.Start(); }