00001 /* 00002 * ViconSubject.hpp 00003 * 00004 * Created on: Oct 22, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef VICONSUBJECT_HPP_ 00009 #define VICONSUBJECT_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 00013 // Ros 00014 #include <tf/transform_broadcaster.h> 00015 00016 // stl 00017 #include <vector> 00018 00019 // Options 00020 #include <telekyb_vicon/ViconTrackerOptions.hpp> 00021 00022 // Segments 00023 #include <telekyb_vicon/ViconSegment.hpp> 00024 00025 namespace TELEKYB_NAMESPACE 00026 { 00027 00028 00029 class ViconSubject { 00030 protected: 00031 // Options 00032 ViconTrackerOptions& options; 00033 00034 int subjectID; // -1 means uninitialized 00035 std::string subjectName; 00036 unsigned int nSegments; 00037 std::vector<ViconSegment> segments; 00038 00039 // ROS 00040 tf::TransformBroadcaster tfBroadCaster; 00041 00042 00043 public: 00044 ViconSubject(); 00045 ViconSubject(int subjectID_); 00046 ViconSubject& operator= (const ViconSubject & other); 00047 00048 virtual ~ViconSubject(); 00049 00050 std::string getName() const; 00051 unsigned int getNSegments() const; 00052 00053 void init(); 00054 void process(); 00055 }; 00056 00057 00058 } //namespace 00059 00060 #endif /* VICONSUBJECT_HPP_ */