Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _XNV_WAVE_DETECTOR_H_
00010 #define _XNV_WAVE_DETECTOR_H_
00011
00012 #include "XnVNiteDefs.h"
00013 #include "XnVPointControl.h"
00014
00015 struct XnVWaveContext;
00016
00017 class XNV_NITE_API XnVWaveDetector :
00018 public XnVPointControl
00019 {
00020 public:
00024 typedef void (XN_CALLBACK_TYPE *WaveCB)(void* pUserCxt);
00025
00031 XnVWaveDetector(const XnChar* strName = "XnVWaveDetector");
00032 ~XnVWaveDetector();
00033
00040 void OnPrimaryPointCreate(const XnVHandPointContext* pContext, const XnPoint3D& ptFocus);
00047 void OnPrimaryPointUpdate(const XnVHandPointContext* pContext);
00055 void OnPrimaryPointReplace(XnUInt32 nOldId, const XnVHandPointContext* pContext);
00061 void OnPrimaryPointDestroy(XnUInt32 nID);
00062
00071 XnCallbackHandle RegisterWave(void* cxt, WaveCB pCB);
00077 void UnregisterWave(XnCallbackHandle handle);
00078
00082 void Reset();
00083
00084 void SetFlipCount(XnInt32 nFlipCount);
00085 void SetMinLength(XnInt32 nMinLength);
00086 void SetMaxDeviation(XnInt32 nMaxDeviation);
00087
00088 XnInt32 GetFlipCount() const;
00089 XnInt32 GetMinLength() const;
00090 XnInt32 GetMaxDeviation() const;
00091 protected:
00092 XnVWaveContext* m_pContext;
00093 XnVEvent m_WaveCBs;
00094 };
00095
00096 #endif // _XNV_WAVE_DETECTOR_H_