Go to the documentation of this file.00001
00002 #ifndef AR_RECOG_MESSAGE_TAGS_H
00003 #define AR_RECOG_MESSAGE_TAGS_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "std_msgs/Header.h"
00018 #include "ar_recog/Tag.h"
00019
00020 namespace ar_recog
00021 {
00022 template <class ContainerAllocator>
00023 struct Tags_ {
00024 typedef Tags_<ContainerAllocator> Type;
00025
00026 Tags_()
00027 : header()
00028 , image_width(0)
00029 , image_height(0)
00030 , angle_of_view(0.0)
00031 , tag_count(0)
00032 , tags()
00033 {
00034 }
00035
00036 Tags_(const ContainerAllocator& _alloc)
00037 : header(_alloc)
00038 , image_width(0)
00039 , image_height(0)
00040 , angle_of_view(0.0)
00041 , tag_count(0)
00042 , tags(_alloc)
00043 {
00044 }
00045
00046 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00047 ::std_msgs::Header_<ContainerAllocator> header;
00048
00049 typedef uint32_t _image_width_type;
00050 uint32_t image_width;
00051
00052 typedef uint32_t _image_height_type;
00053 uint32_t image_height;
00054
00055 typedef double _angle_of_view_type;
00056 double angle_of_view;
00057
00058 typedef uint32_t _tag_count_type;
00059 uint32_t tag_count;
00060
00061 typedef std::vector< ::ar_recog::Tag_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::ar_recog::Tag_<ContainerAllocator> >::other > _tags_type;
00062 std::vector< ::ar_recog::Tag_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::ar_recog::Tag_<ContainerAllocator> >::other > tags;
00063
00064
00065 typedef boost::shared_ptr< ::ar_recog::Tags_<ContainerAllocator> > Ptr;
00066 typedef boost::shared_ptr< ::ar_recog::Tags_<ContainerAllocator> const> ConstPtr;
00067 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00068 };
00069 typedef ::ar_recog::Tags_<std::allocator<void> > Tags;
00070
00071 typedef boost::shared_ptr< ::ar_recog::Tags> TagsPtr;
00072 typedef boost::shared_ptr< ::ar_recog::Tags const> TagsConstPtr;
00073
00074
00075 template<typename ContainerAllocator>
00076 std::ostream& operator<<(std::ostream& s, const ::ar_recog::Tags_<ContainerAllocator> & v)
00077 {
00078 ros::message_operations::Printer< ::ar_recog::Tags_<ContainerAllocator> >::stream(s, "", v);
00079 return s;}
00080
00081 }
00082
00083 namespace ros
00084 {
00085 namespace message_traits
00086 {
00087 template<class ContainerAllocator> struct IsMessage< ::ar_recog::Tags_<ContainerAllocator> > : public TrueType {};
00088 template<class ContainerAllocator> struct IsMessage< ::ar_recog::Tags_<ContainerAllocator> const> : public TrueType {};
00089 template<class ContainerAllocator>
00090 struct MD5Sum< ::ar_recog::Tags_<ContainerAllocator> > {
00091 static const char* value()
00092 {
00093 return "9fd9ccebe014b769dcb84bc4557ac837";
00094 }
00095
00096 static const char* value(const ::ar_recog::Tags_<ContainerAllocator> &) { return value(); }
00097 static const uint64_t static_value1 = 0x9fd9ccebe014b769ULL;
00098 static const uint64_t static_value2 = 0xdcb84bc4557ac837ULL;
00099 };
00100
00101 template<class ContainerAllocator>
00102 struct DataType< ::ar_recog::Tags_<ContainerAllocator> > {
00103 static const char* value()
00104 {
00105 return "ar_recog/Tags";
00106 }
00107
00108 static const char* value(const ::ar_recog::Tags_<ContainerAllocator> &) { return value(); }
00109 };
00110
00111 template<class ContainerAllocator>
00112 struct Definition< ::ar_recog::Tags_<ContainerAllocator> > {
00113 static const char* value()
00114 {
00115 return "Header header\n\
00116 uint32 image_width\n\
00117 uint32 image_height\n\
00118 float64 angle_of_view\n\
00119 uint32 tag_count\n\
00120 Tag[] tags\n\
00121 \n\
00122 ================================================================================\n\
00123 MSG: std_msgs/Header\n\
00124 # Standard metadata for higher-level stamped data types.\n\
00125 # This is generally used to communicate timestamped data \n\
00126 # in a particular coordinate frame.\n\
00127 # \n\
00128 # sequence ID: consecutively increasing ID \n\
00129 uint32 seq\n\
00130 #Two-integer timestamp that is expressed as:\n\
00131 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00132 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00133 # time-handling sugar is provided by the client library\n\
00134 time stamp\n\
00135 #Frame this data is associated with\n\
00136 # 0: no frame\n\
00137 # 1: global frame\n\
00138 string frame_id\n\
00139 \n\
00140 ================================================================================\n\
00141 MSG: ar_recog/Tag\n\
00142 # All screen measurements are in pixels, all spatial measurements are in meters.\n\
00143 # Angles in radians.\n\
00144 uint32 id\n\
00145 # This is a rating of confidence in the tag pattern identification 0 < cf < 1.\n\
00146 float64 cf\n\
00147 uint32 x\n\
00148 uint32 y\n\
00149 # The 'diameter' is the square root of the tag's actual area, as estimated by \n\
00150 # the AR software. You can use it to check the cf confidence.\n\
00151 float64 diameter\n\
00152 # This is the estimated distance from viewer to the center of the tag.\n\
00153 float64 distance\n\
00154 float64 xRot \n\
00155 float64 yRot \n\
00156 float64 zRot\n\
00157 float64 xMetric\n\
00158 float64 yMetric\n\
00159 float64 zMetric\n\
00160 # Screen coordinates of the four corners.\n\
00161 float64[8] cwCorners\n\
00162 # FOR TESTING ONLY\n\
00163 # Uncommenting this and uncommenting the similarly-marked lines in \n\
00164 # ar_recog.cpp will put the ARToolkit rotation matrix into the Tag message,\n\
00165 # which can be useful for debugging and testing.\n\
00166 # float64[3] c3\n\
00167 # float64[3] t0\n\
00168 # float64[3] t1\n\
00169 # float64[3] t2\n\
00170 \n\
00171 ";
00172 }
00173
00174 static const char* value(const ::ar_recog::Tags_<ContainerAllocator> &) { return value(); }
00175 };
00176
00177 template<class ContainerAllocator> struct HasHeader< ::ar_recog::Tags_<ContainerAllocator> > : public TrueType {};
00178 template<class ContainerAllocator> struct HasHeader< const ::ar_recog::Tags_<ContainerAllocator> > : public TrueType {};
00179 }
00180 }
00181
00182 namespace ros
00183 {
00184 namespace serialization
00185 {
00186
00187 template<class ContainerAllocator> struct Serializer< ::ar_recog::Tags_<ContainerAllocator> >
00188 {
00189 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00190 {
00191 stream.next(m.header);
00192 stream.next(m.image_width);
00193 stream.next(m.image_height);
00194 stream.next(m.angle_of_view);
00195 stream.next(m.tag_count);
00196 stream.next(m.tags);
00197 }
00198
00199 ROS_DECLARE_ALLINONE_SERIALIZER;
00200 };
00201 }
00202 }
00203
00204 namespace ros
00205 {
00206 namespace message_operations
00207 {
00208
00209 template<class ContainerAllocator>
00210 struct Printer< ::ar_recog::Tags_<ContainerAllocator> >
00211 {
00212 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::ar_recog::Tags_<ContainerAllocator> & v)
00213 {
00214 s << indent << "header: ";
00215 s << std::endl;
00216 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00217 s << indent << "image_width: ";
00218 Printer<uint32_t>::stream(s, indent + " ", v.image_width);
00219 s << indent << "image_height: ";
00220 Printer<uint32_t>::stream(s, indent + " ", v.image_height);
00221 s << indent << "angle_of_view: ";
00222 Printer<double>::stream(s, indent + " ", v.angle_of_view);
00223 s << indent << "tag_count: ";
00224 Printer<uint32_t>::stream(s, indent + " ", v.tag_count);
00225 s << indent << "tags[]" << std::endl;
00226 for (size_t i = 0; i < v.tags.size(); ++i)
00227 {
00228 s << indent << " tags[" << i << "]: ";
00229 s << std::endl;
00230 s << indent;
00231 Printer< ::ar_recog::Tag_<ContainerAllocator> >::stream(s, indent + " ", v.tags[i]);
00232 }
00233 }
00234 };
00235
00236
00237 }
00238 }
00239
00240 #endif // AR_RECOG_MESSAGE_TAGS_H
00241