23 #ifndef __PLUGINS_OPENNI_HANDTRACKER_THREAD_H_ 24 #define __PLUGINS_OPENNI_HANDTRACKER_THREAD_H_ 26 #include <core/threading/thread.h> 27 #include <core/utils/lockptr.h> 28 #include <aspect/logging.h> 29 #include <aspect/configurable.h> 30 #include <aspect/clock.h> 31 #include <aspect/blackboard.h> 32 #include <aspect/blocked_timing.h> 33 #include <plugins/openni/aspect/openni.h> 35 #include <XnCppWrapper.h> 40 class ObjectPositionInterface;
59 void hand_create(XnUserID &user,
const XnPoint3D *position, XnFloat &time);
61 void hand_update(XnUserID &user,
const XnPoint3D *position, XnFloat &time);
64 const XnPoint3D *end_position);
69 protected:
virtual void run() { Thread::run(); }
72 void update_hand(XnUserID &user,
const XnPoint3D *position);
76 typedef std::map<XnUserID, fawkes::ObjectPositionInterface *> HandMap;
79 xn::HandsGenerator *__hand_gen;
80 xn::DepthGenerator *__depth_gen;
81 xn::GestureGenerator *__gesture_gen;
83 XnCallbackHandle __hand_cb_handle;
84 XnCallbackHandle __gesture_cb_handle;
86 std::map<std::string, bool> __enabled_gesture;
88 std::map<XnUserID, bool> __needs_write;
92 unsigned int __height;
virtual void finalize()
Finalize the thread.
OpenNiHandTrackerThread()
Constructor.
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
virtual void init()
Initialize the thread.
Fawkes library namespace.
Thread aspect to get access to the OpenNI context.
virtual ~OpenNiHandTrackerThread()
Destructor.
OpenNI Hand Tracker Thread.
Thread class encapsulation of pthreads.
void gesture_progress(const XnChar *gesture_name, const XnPoint3D *position, XnFloat progress)
Notify of gesture progress.
virtual void run()
Stub to see name in backtrace for easier debugging.
Thread aspect to use blocked timing.
void gesture_recognized(const XnChar *gesture_name, const XnPoint3D *position, const XnPoint3D *end_position)
Notify of recognized gesture.
Thread aspect to log output.
virtual void loop()
Code to execute in the thread.
Thread aspect to access configuration data.
void hand_destroy(XnUserID &user, XnFloat &time)
Notify of disappeared hand.
void hand_create(XnUserID &user, const XnPoint3D *position, XnFloat &time)
Notify of new hand.
void hand_update(XnUserID &user, const XnPoint3D *position, XnFloat &time)
Notify of hand update.