Mercurial > hg > Game > Kinect
diff KinectTrack.h @ 2:3b5465899da9
add KinectTrack.cc
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 01 Feb 2011 03:01:22 +0900 |
parents | 2afd5c6cc8d2 |
children | 7e112b536f0a |
line wrap: on
line diff
--- a/KinectTrack.h Mon Jan 31 03:49:24 2011 +0900 +++ b/KinectTrack.h Tue Feb 01 03:01:22 2011 +0900 @@ -1,3 +1,8 @@ +#include <map> +#include <list> +#include <XnCppWrapper.h> +#include <XnVPointControl.h> + typedef enum { IN_SESSION, NOT_IN_SESSION, @@ -7,8 +12,30 @@ class NIState { public: static SessionState gSessionState; + static XnBool gBDrawDepthMap; static void XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt); static void XN_CALLBACK_TYPE sessionEnding(void *userCxt); static void XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, XnFloat fProgress, void *userCxt); + static void XN_CALLBACK_TYPE noHands(void *UserCxt); }; + +class XnVPointDrawer : public XnVPointControl { +public: + XnVPointDrawer(XnUInt32 nHistorySize, xn::DepthGenerator depthGenerator); + virtual ~XnVPointDrawer(); + void update(XnVMessage *pMessage); + void onPointCreate(const XnVHandPointContext *cxt); + void onPointUpdate(const XnVHandPointContext *cxt); + void onPointDestroy(XnUInt32 nID); + void draw() const; + void setDepthMap(XnBool bDrawDM); + void setFrameID(XnBool bFrameID); +protected: + XnUInt32 mNHistorySize; + std::map<XnUInt32, std::list<XnPoint3D> > mHistory; + xn::DepthGenerator mDepthGenerator; + XnFloat *mPFPositionBuffer; + XnBool mBDrawDM; + XnBool mBFrameID; +};