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 class XnVEvent;
00017
00018 class XNV_NITE_API XnVWaveDetector :
00019 public XnVPointControl
00020 {
00021 public:
00025 typedef void (XN_CALLBACK_TYPE *WaveCB)(void* pUserCxt);
00026
00032 XnVWaveDetector(const XnChar* strName = "XnVWaveDetector");
00033 ~XnVWaveDetector();
00034
00041 void OnPrimaryPointCreate(const XnVHandPointContext* pContext, const XnPoint3D& ptFocus);
00048 void OnPrimaryPointUpdate(const XnVHandPointContext* pContext);
00056 void OnPrimaryPointReplace(XnUInt32 nOldId, const XnVHandPointContext* pContext);
00062 void OnPrimaryPointDestroy(XnUInt32 nID);
00063
00072 XnCallbackHandle RegisterWave(void* cxt, WaveCB pCB);
00078 void UnregisterWave(XnCallbackHandle handle);
00079
00083 void Reset();
00084
00085 void SetFlipCount(XnInt32 nFlipCount);
00086 void SetMinLength(XnInt32 nMinLength);
00087 void SetMaxDeviation(XnInt32 nMaxDeviation);
00088
00089 XnInt32 GetFlipCount() const;
00090 XnInt32 GetMinLength() const;
00091 XnInt32 GetMaxDeviation() const;
00092 protected:
00093 XnVWaveContext* m_pContext;
00094 XnVEvent* m_pWaveCBs;
00095 };
00096
00097 #endif // _XNV_WAVE_DETECTOR_H_