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_CLICKABLE_VIRTUAL_PLANE_H_ 00010 #define _XNV_CLICKABLE_VIRTUAL_PLANE_H_ 00011 00012 #include "XnVVirtualCoordinates.h" 00013 00014 class XnVClickableVirtualPlane; 00015 struct XnVClickableID 00016 { 00017 XnVClickableID(const XnVHandPointContext* cxt, XnVClickableVirtualPlane* pPlane) : 00018 pCxt(cxt), pCVP(pPlane) 00019 {} 00020 00021 const XnVHandPointContext* pCxt; 00022 XnVClickableVirtualPlane* pCVP; 00023 }; 00024 00028 class XNV_NITE_API XnVClickableVirtualPlane : 00029 public XnVVirtualCoordinates 00030 { 00031 public: 00035 typedef void (XN_CALLBACK_TYPE* ClickCB)(XnUInt32 nID, const XnPoint3D& ptPosition, void* cxt); 00036 00043 XnVClickableVirtualPlane(const XnChar* strINI, const XnChar* strName = "XnVClickableVirtualPlane"); 00044 ~XnVClickableVirtualPlane(); 00045 00054 XnCallbackHandle RegisterClick(void* cxt, ClickCB CB); 00060 void UnregisterClick(XnCallbackHandle hCB); 00061 00067 void Click(XnUInt32, const XnPoint3D& ptPosition); 00068 00074 void OnPointCreate(const XnVHandPointContext* pContext); 00080 void OnPointDestroy(XnUInt32 nID); 00081 00088 void FreezeCoordinates(XnUInt32 nID, const XnPoint3D& ptPosition); 00094 void UnfreezeCoordinates(XnUInt32 nID); 00102 XnBool IsFrozen(XnUInt32 nID) const; 00103 protected: 00104 XN_DECLARE_DEFAULT_HASH_DECL(XNV_NITE_API, XnUInt32, XnPoint3D*, XnVIntPointHash); 00105 XN_DECLARE_DEFAULT_HASH_DECL(XNV_NITE_API, XnUInt32, XnVClickableID*, XnVIntIDHash); 00106 00107 void UpdateVirtualPoint(XnVVirtualCoordinatesInternal* pVC, const XnVHandPointContext* pContext, XnVHandPointContext* pLocalContext); 00108 00109 XnVIntPointHash m_FrozenPoints; 00110 XnVIntIDHash m_IDContexts; 00111 00112 XnVUintPointSpecificEvent m_ClickCBs; 00113 }; 00114 00115 #endif // _XNV_CLICKABLE_VIRTUAL_PLANE_H_