NITE 1.4.1 - API Reference
|
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_