00001 00002 00003 #ifndef _TRACKER_THREAD_H_ 00004 #define _TRACKER_THREAD_H_ 00005 00006 #include <blort/ThreadObject/Thread.h> 00007 #include <blort/Tracker/Tracker.h> 00008 #include <blort/Tracker/CDataFile.h> 00009 #include <blort/TomGine/tgPose.h> 00010 00011 namespace Tracking{ 00012 00013 class TrackerThread : public CThread 00014 { 00015 private: 00016 enum Command{ 00017 INIT, 00018 TRACK, 00019 ADD_MODEL_FROM_FILE, 00020 IDLE, 00021 }; 00022 Command cmd; 00023 00024 00025 virtual BOOL OnTask(); 00026 00027 CEventClass m_evCmd, m_evData; 00028 CMutexClass m_running; 00029 00030 bool m_quit; 00031 bool m_bfc; 00032 00033 Tracking::Tracker::Parameter m_params; 00034 std::string m_tracking_ini; 00035 std::string m_ply_file; 00036 std::string m_model_label; 00037 int m_model_id; 00038 TomGine::tgPose m_pose; 00039 00040 public: 00041 TrackerThread(); 00042 ~TrackerThread(); 00043 00044 void init(const Tracking::Tracker::Parameter ¶ms); 00045 00046 int addModelFromFile(const char* ply_file, TomGine::tgPose& pose, std::string label, bool bfc=true); 00047 00048 }; 00049 00050 } // namespace Tracking 00051 00052 #endif /* _TRACKER_THREAD_H_ */ 00053