NITE 1.5.1 - API Reference

XnVSessionGenerator.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 *                                                                              *
00003 *   PrimeSense NITE 1.3                                                        *
00004 *   Copyright (C) 2010 PrimeSense Ltd.                                         *
00005 *                                                                              *
00006 *******************************************************************************/
00007 
00008 
00009 #ifndef _XNV_SESSION_GENERATOR_H_
00010 #define _XNV_SESSION_GENERATOR_H_
00011 
00012 #include "XnVMessageGenerator.h"
00013 #include "XnVSessionListener.h"
00014 
00015 class XnVSessionListenerList;
00019 class XNV_NITE_API XnVSessionGenerator :
00020     public XnVMessageGenerator
00021 {
00022 public:
00028     XnVSessionGenerator(const XnChar* strName = "XnVSessionGenerator");
00029     virtual ~XnVSessionGenerator();
00030 
00038     XnVHandle RegisterSession(XnVSessionListener* pListener);
00049     XnVHandle RegisterSession(void* cxt, XnVSessionListener::OnSessionStartCB StartCB, XnVSessionListener::OnSessionEndCB EndCB, XnVSessionListener::OnFocusStartDetectedCB MidCB = NULL);
00050 
00056     void UnregisterSession(XnVSessionListener* pSessionListener);
00062     void UnregisterSession(XnVHandle nHandle);
00063 
00069     XnBool IsInSession() const;
00070 
00076     virtual XnStatus LosePoint(XnUInt32 nID) = 0;
00080     virtual XnStatus LosePoints() = 0;
00081 
00082     virtual XnStatus EndSession() = 0;
00083     virtual XnStatus ForceSession(const XnPoint3D& ptFocus) = 0;
00084     virtual XnStatus TrackPoint(const XnPoint3D& pt) = 0;
00085 
00086     XnStatus GetFocusPoint(XnPoint3D& ptFocus) const;
00087 protected:
00088     virtual void SessionStart(const XnPoint3D& ptPosition);
00089     virtual void SessionMidGesture(const XnChar* strFocus, const XnPoint3D& ptFocus, XnFloat fProgress);
00090     virtual void SessionStop();
00091 
00092     XnBool m_bInSession;
00093     XnPoint3D m_ptFocusPoint;
00094     XnPoint3D m_ptStartTrackingPoint;
00095 
00096     XnVSessionListenerList* m_pSessionListeners;
00097 };
00098 
00099 #endif // _XNV_SESSION_GENERATOR_H_