00001
00002 #ifndef IMAGE_VIEW2_MESSAGE_IMAGEMARKER2_H
00003 #define IMAGE_VIEW2_MESSAGE_IMAGEMARKER2_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 "geometry_msgs/Point.h"
00019 #include "geometry_msgs/PointStamped.h"
00020 #include "std_msgs/ColorRGBA.h"
00021 #include "std_msgs/ColorRGBA.h"
00022 #include "geometry_msgs/Point.h"
00023 #include "image_view2/PointArrayStamped.h"
00024 #include "std_msgs/ColorRGBA.h"
00025
00026 namespace image_view2
00027 {
00028 template <class ContainerAllocator>
00029 struct ImageMarker2_ {
00030 typedef ImageMarker2_<ContainerAllocator> Type;
00031
00032 ImageMarker2_()
00033 : header()
00034 , ns()
00035 , id(0)
00036 , type(0)
00037 , action(0)
00038 , position()
00039 , position3D()
00040 , scale(0.0)
00041 , outline_color()
00042 , filled(0)
00043 , fill_color()
00044 , lifetime()
00045 , points()
00046 , points3D()
00047 , outline_colors()
00048 , frames()
00049 , text()
00050 {
00051 }
00052
00053 ImageMarker2_(const ContainerAllocator& _alloc)
00054 : header(_alloc)
00055 , ns(_alloc)
00056 , id(0)
00057 , type(0)
00058 , action(0)
00059 , position(_alloc)
00060 , position3D(_alloc)
00061 , scale(0.0)
00062 , outline_color(_alloc)
00063 , filled(0)
00064 , fill_color(_alloc)
00065 , lifetime()
00066 , points(_alloc)
00067 , points3D(_alloc)
00068 , outline_colors(_alloc)
00069 , frames(_alloc)
00070 , text(_alloc)
00071 {
00072 }
00073
00074 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00075 ::std_msgs::Header_<ContainerAllocator> header;
00076
00077 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _ns_type;
00078 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > ns;
00079
00080 typedef int32_t _id_type;
00081 int32_t id;
00082
00083 typedef int32_t _type_type;
00084 int32_t type;
00085
00086 typedef int32_t _action_type;
00087 int32_t action;
00088
00089 typedef ::geometry_msgs::Point_<ContainerAllocator> _position_type;
00090 ::geometry_msgs::Point_<ContainerAllocator> position;
00091
00092 typedef ::geometry_msgs::PointStamped_<ContainerAllocator> _position3D_type;
00093 ::geometry_msgs::PointStamped_<ContainerAllocator> position3D;
00094
00095 typedef float _scale_type;
00096 float scale;
00097
00098 typedef ::std_msgs::ColorRGBA_<ContainerAllocator> _outline_color_type;
00099 ::std_msgs::ColorRGBA_<ContainerAllocator> outline_color;
00100
00101 typedef int8_t _filled_type;
00102 int8_t filled;
00103
00104 typedef ::std_msgs::ColorRGBA_<ContainerAllocator> _fill_color_type;
00105 ::std_msgs::ColorRGBA_<ContainerAllocator> fill_color;
00106
00107 typedef ros::Duration _lifetime_type;
00108 ros::Duration lifetime;
00109
00110 typedef std::vector< ::geometry_msgs::Point_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point_<ContainerAllocator> >::other > _points_type;
00111 std::vector< ::geometry_msgs::Point_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point_<ContainerAllocator> >::other > points;
00112
00113 typedef ::image_view2::PointArrayStamped_<ContainerAllocator> _points3D_type;
00114 ::image_view2::PointArrayStamped_<ContainerAllocator> points3D;
00115
00116 typedef std::vector< ::std_msgs::ColorRGBA_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::std_msgs::ColorRGBA_<ContainerAllocator> >::other > _outline_colors_type;
00117 std::vector< ::std_msgs::ColorRGBA_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::std_msgs::ColorRGBA_<ContainerAllocator> >::other > outline_colors;
00118
00119 typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _frames_type;
00120 std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > frames;
00121
00122 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _text_type;
00123 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > text;
00124
00125 enum { CIRCLE = 0 };
00126 enum { LINE_STRIP = 1 };
00127 enum { LINE_LIST = 2 };
00128 enum { POLYGON = 3 };
00129 enum { POINTS = 4 };
00130 enum { FRAMES = 5 };
00131 enum { TEXT = 6 };
00132 enum { LINE_STRIP3D = 7 };
00133 enum { LINE_LIST3D = 8 };
00134 enum { POLYGON3D = 9 };
00135 enum { POINTS3D = 10 };
00136 enum { TEXT3D = 11 };
00137 enum { ADD = 0 };
00138 enum { REMOVE = 1 };
00139
00140 typedef boost::shared_ptr< ::image_view2::ImageMarker2_<ContainerAllocator> > Ptr;
00141 typedef boost::shared_ptr< ::image_view2::ImageMarker2_<ContainerAllocator> const> ConstPtr;
00142 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00143 };
00144 typedef ::image_view2::ImageMarker2_<std::allocator<void> > ImageMarker2;
00145
00146 typedef boost::shared_ptr< ::image_view2::ImageMarker2> ImageMarker2Ptr;
00147 typedef boost::shared_ptr< ::image_view2::ImageMarker2 const> ImageMarker2ConstPtr;
00148
00149
00150 template<typename ContainerAllocator>
00151 std::ostream& operator<<(std::ostream& s, const ::image_view2::ImageMarker2_<ContainerAllocator> & v)
00152 {
00153 ros::message_operations::Printer< ::image_view2::ImageMarker2_<ContainerAllocator> >::stream(s, "", v);
00154 return s;}
00155
00156 }
00157
00158 namespace ros
00159 {
00160 namespace message_traits
00161 {
00162 template<class ContainerAllocator> struct IsMessage< ::image_view2::ImageMarker2_<ContainerAllocator> > : public TrueType {};
00163 template<class ContainerAllocator> struct IsMessage< ::image_view2::ImageMarker2_<ContainerAllocator> const> : public TrueType {};
00164 template<class ContainerAllocator>
00165 struct MD5Sum< ::image_view2::ImageMarker2_<ContainerAllocator> > {
00166 static const char* value()
00167 {
00168 return "0f15d5468243177cf34fcb59d10d1b18";
00169 }
00170
00171 static const char* value(const ::image_view2::ImageMarker2_<ContainerAllocator> &) { return value(); }
00172 static const uint64_t static_value1 = 0x0f15d5468243177cULL;
00173 static const uint64_t static_value2 = 0xf34fcb59d10d1b18ULL;
00174 };
00175
00176 template<class ContainerAllocator>
00177 struct DataType< ::image_view2::ImageMarker2_<ContainerAllocator> > {
00178 static const char* value()
00179 {
00180 return "image_view2/ImageMarker2";
00181 }
00182
00183 static const char* value(const ::image_view2::ImageMarker2_<ContainerAllocator> &) { return value(); }
00184 };
00185
00186 template<class ContainerAllocator>
00187 struct Definition< ::image_view2::ImageMarker2_<ContainerAllocator> > {
00188 static const char* value()
00189 {
00190 return "byte CIRCLE=0\n\
00191 byte LINE_STRIP=1\n\
00192 byte LINE_LIST=2\n\
00193 byte POLYGON=3\n\
00194 byte POINTS=4\n\
00195 byte FRAMES=5\n\
00196 byte TEXT=6\n\
00197 \n\
00198 byte LINE_STRIP3D=7\n\
00199 byte LINE_LIST3D=8\n\
00200 byte POLYGON3D=9\n\
00201 byte POINTS3D=10\n\
00202 byte TEXT3D=11\n\
00203 \n\
00204 byte ADD=0\n\
00205 byte REMOVE=1\n\
00206 \n\
00207 Header header\n\
00208 string ns # namespace, used with id to form a unique id\n\
00209 int32 id # unique id within the namespace\n\
00210 int32 type # CIRCLE/LINE_STRIP/etc.\n\
00211 int32 action # ADD/REMOVE\n\
00212 geometry_msgs/Point position # used for CIRCLE/TEXT, 2D in pixel-coords\n\
00213 geometry_msgs/PointStamped position3D # used for 3DTEXT\n\
00214 float32 scale # the diameter for a circle, etc.\n\
00215 std_msgs/ColorRGBA outline_color\n\
00216 byte filled # whether to fill in the shape with color\n\
00217 std_msgs/ColorRGBA fill_color # color [0.0-1.0]\n\
00218 duration lifetime # How long the object should last before being automatically deleted. 0 means forever\n\
00219 \n\
00220 \n\
00221 geometry_msgs/Point[] points # used for LINE_STRIP/LINE_LIST/POLYGON/POINTS., 2D in pixel coords\n\
00222 PointArrayStamped points3D # used for 3DLINE_STRIP/3DLINE_LIST/3DPOLYGON/3DPOINTS\n\
00223 std_msgs/ColorRGBA[] outline_colors # a color for each line, point, etc.\n\
00224 \n\
00225 string[] frames # used for FRAMES, tf names\n\
00226 string text # used for TEXT, draw size of text is scale\n\
00227 \n\
00228 ================================================================================\n\
00229 MSG: std_msgs/Header\n\
00230 # Standard metadata for higher-level stamped data types.\n\
00231 # This is generally used to communicate timestamped data \n\
00232 # in a particular coordinate frame.\n\
00233 # \n\
00234 # sequence ID: consecutively increasing ID \n\
00235 uint32 seq\n\
00236 #Two-integer timestamp that is expressed as:\n\
00237 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00238 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00239 # time-handling sugar is provided by the client library\n\
00240 time stamp\n\
00241 #Frame this data is associated with\n\
00242 # 0: no frame\n\
00243 # 1: global frame\n\
00244 string frame_id\n\
00245 \n\
00246 ================================================================================\n\
00247 MSG: geometry_msgs/Point\n\
00248 # This contains the position of a point in free space\n\
00249 float64 x\n\
00250 float64 y\n\
00251 float64 z\n\
00252 \n\
00253 ================================================================================\n\
00254 MSG: geometry_msgs/PointStamped\n\
00255 # This represents a Point with reference coordinate frame and timestamp\n\
00256 Header header\n\
00257 Point point\n\
00258 \n\
00259 ================================================================================\n\
00260 MSG: std_msgs/ColorRGBA\n\
00261 float32 r\n\
00262 float32 g\n\
00263 float32 b\n\
00264 float32 a\n\
00265 \n\
00266 ================================================================================\n\
00267 MSG: image_view2/PointArrayStamped\n\
00268 Header header\n\
00269 \n\
00270 geometry_msgs/Point[] points\n\
00271 \n\
00272 \n\
00273 ";
00274 }
00275
00276 static const char* value(const ::image_view2::ImageMarker2_<ContainerAllocator> &) { return value(); }
00277 };
00278
00279 template<class ContainerAllocator> struct HasHeader< ::image_view2::ImageMarker2_<ContainerAllocator> > : public TrueType {};
00280 template<class ContainerAllocator> struct HasHeader< const ::image_view2::ImageMarker2_<ContainerAllocator> > : public TrueType {};
00281 }
00282 }
00283
00284 namespace ros
00285 {
00286 namespace serialization
00287 {
00288
00289 template<class ContainerAllocator> struct Serializer< ::image_view2::ImageMarker2_<ContainerAllocator> >
00290 {
00291 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00292 {
00293 stream.next(m.header);
00294 stream.next(m.ns);
00295 stream.next(m.id);
00296 stream.next(m.type);
00297 stream.next(m.action);
00298 stream.next(m.position);
00299 stream.next(m.position3D);
00300 stream.next(m.scale);
00301 stream.next(m.outline_color);
00302 stream.next(m.filled);
00303 stream.next(m.fill_color);
00304 stream.next(m.lifetime);
00305 stream.next(m.points);
00306 stream.next(m.points3D);
00307 stream.next(m.outline_colors);
00308 stream.next(m.frames);
00309 stream.next(m.text);
00310 }
00311
00312 ROS_DECLARE_ALLINONE_SERIALIZER;
00313 };
00314 }
00315 }
00316
00317 namespace ros
00318 {
00319 namespace message_operations
00320 {
00321
00322 template<class ContainerAllocator>
00323 struct Printer< ::image_view2::ImageMarker2_<ContainerAllocator> >
00324 {
00325 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::image_view2::ImageMarker2_<ContainerAllocator> & v)
00326 {
00327 s << indent << "header: ";
00328 s << std::endl;
00329 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00330 s << indent << "ns: ";
00331 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.ns);
00332 s << indent << "id: ";
00333 Printer<int32_t>::stream(s, indent + " ", v.id);
00334 s << indent << "type: ";
00335 Printer<int32_t>::stream(s, indent + " ", v.type);
00336 s << indent << "action: ";
00337 Printer<int32_t>::stream(s, indent + " ", v.action);
00338 s << indent << "position: ";
00339 s << std::endl;
00340 Printer< ::geometry_msgs::Point_<ContainerAllocator> >::stream(s, indent + " ", v.position);
00341 s << indent << "position3D: ";
00342 s << std::endl;
00343 Printer< ::geometry_msgs::PointStamped_<ContainerAllocator> >::stream(s, indent + " ", v.position3D);
00344 s << indent << "scale: ";
00345 Printer<float>::stream(s, indent + " ", v.scale);
00346 s << indent << "outline_color: ";
00347 s << std::endl;
00348 Printer< ::std_msgs::ColorRGBA_<ContainerAllocator> >::stream(s, indent + " ", v.outline_color);
00349 s << indent << "filled: ";
00350 Printer<int8_t>::stream(s, indent + " ", v.filled);
00351 s << indent << "fill_color: ";
00352 s << std::endl;
00353 Printer< ::std_msgs::ColorRGBA_<ContainerAllocator> >::stream(s, indent + " ", v.fill_color);
00354 s << indent << "lifetime: ";
00355 Printer<ros::Duration>::stream(s, indent + " ", v.lifetime);
00356 s << indent << "points[]" << std::endl;
00357 for (size_t i = 0; i < v.points.size(); ++i)
00358 {
00359 s << indent << " points[" << i << "]: ";
00360 s << std::endl;
00361 s << indent;
00362 Printer< ::geometry_msgs::Point_<ContainerAllocator> >::stream(s, indent + " ", v.points[i]);
00363 }
00364 s << indent << "points3D: ";
00365 s << std::endl;
00366 Printer< ::image_view2::PointArrayStamped_<ContainerAllocator> >::stream(s, indent + " ", v.points3D);
00367 s << indent << "outline_colors[]" << std::endl;
00368 for (size_t i = 0; i < v.outline_colors.size(); ++i)
00369 {
00370 s << indent << " outline_colors[" << i << "]: ";
00371 s << std::endl;
00372 s << indent;
00373 Printer< ::std_msgs::ColorRGBA_<ContainerAllocator> >::stream(s, indent + " ", v.outline_colors[i]);
00374 }
00375 s << indent << "frames[]" << std::endl;
00376 for (size_t i = 0; i < v.frames.size(); ++i)
00377 {
00378 s << indent << " frames[" << i << "]: ";
00379 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.frames[i]);
00380 }
00381 s << indent << "text: ";
00382 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.text);
00383 }
00384 };
00385
00386
00387 }
00388 }
00389
00390 #endif // IMAGE_VIEW2_MESSAGE_IMAGEMARKER2_H
00391