Go to the documentation of this file.00001
00002
00003
00004
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_