• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

XnVClickableVirtualPlane.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_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_

Generated on Tue Jul 19 2011 15:52:50 for NITE 1.4.1 - API Reference by  doxygen 1.7.1