private void CreateAndRun()
{
m_context = new Context(@"data\openNI.xml");
m_imageGenerator = new ImageGenerator(m_context);
m_depthGenerator = new DepthGenerator(m_context);
SessionManager sessionManager = new SessionManager(m_context, "Wave", "RaiseHand");
// update the state
Dispatcher.BeginInvoke(() => { State = SessionState.Idle; });
sessionManager.SessionStart += SessionManager_SessionStart;
sessionManager.SessionEnd += SessionManager_SessionEnd;
PointControl pointControl = new PointControl();
pointControl.PrimaryPointCreate += PointControl_PrimaryPointCreate;
pointControl.PrimaryPointDestroy += PointControl_PrimaryPointDestroy;
pointControl.PrimaryPointUpdate += PointControl_PrimaryPointUpdate;
SwipeDetector swipeDetector = new SwipeDetector();
swipeDetector.UseSteady = true;
swipeDetector.SwipeLeft += SwipeDetector_SwipeLeft;
swipeDetector.SwipeRight += SwipeDetector_SwipeRight;
PointDenoiser denoiser = new PointDenoiser();
denoiser.AddListener(pointControl);
denoiser.AddListener(swipeDetector);
sessionManager.AddListener(denoiser);
while (m_running)
{
m_context.WaitAndUpdateAll();
sessionManager.Update(m_context);
}
}