00001 /* 00002 * ViconSegment.hpp 00003 * 00004 * Created on: Sep 3, 2012 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef VICONSEGMENT_HPP_ 00009 #define VICONSEGMENT_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 00013 #include <ros/ros.h> 00014 00015 #include <telekyb_base/Spaces.hpp> 00016 00017 00018 // Message 00019 #include <geometry_msgs/PoseStamped.h> 00020 00021 namespace TELEKYB_NAMESPACE { 00022 00023 00024 class ViconSubject; 00025 00026 class ViconSegment { 00027 public: 00028 ViconSegment(ViconSubject& parent_, int segmentID_, const std::string segmentName_); 00029 ViconSegment& operator= (const ViconSegment & other); 00030 virtual ~ViconSegment(); 00031 00032 void publish(const Eigen::Vector3d& globalTranslation, const Eigen::Quaterniond& globalOrientation); 00033 00034 int getSegmentID() const; 00035 std::string getSegmentName() const; 00036 00037 00038 private: 00039 ViconSubject& parent; 00040 int segmentID; 00041 std::string segmentName; 00042 ros::Publisher posePublisher; 00043 00044 geometry_msgs::PoseStamped poseMsg; 00045 00046 }; 00047 00048 } /* namespace telekyb */ 00049 #endif /* VICONSEGMENT_HPP_ */