00001
00002 #ifndef VISUALIZATION_MSGS_MESSAGE_MARKERARRAY_H
00003 #define VISUALIZATION_MSGS_MESSAGE_MARKERARRAY_H
00004 #include <string>
00005 #include <vector>
00006 #include <ostream>
00007 #include "ros/serialization.h"
00008 #include "ros/builtin_message_traits.h"
00009 #include "ros/message_operations.h"
00010 #include "ros/message.h"
00011 #include "ros/time.h"
00012
00013 #include "visualization_msgs/Marker.h"
00014
00015 namespace visualization_msgs
00016 {
00017 template <class ContainerAllocator>
00018 struct MarkerArray_ : public ros::Message
00019 {
00020 typedef MarkerArray_<ContainerAllocator> Type;
00021
00022 MarkerArray_()
00023 : markers()
00024 {
00025 }
00026
00027 MarkerArray_(const ContainerAllocator& _alloc)
00028 : markers(_alloc)
00029 {
00030 }
00031
00032 typedef std::vector< ::visualization_msgs::Marker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::Marker_<ContainerAllocator> >::other > _markers_type;
00033 std::vector< ::visualization_msgs::Marker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::Marker_<ContainerAllocator> >::other > markers;
00034
00035
00036 ROS_DEPRECATED uint32_t get_markers_size() const { return (uint32_t)markers.size(); }
00037 ROS_DEPRECATED void set_markers_size(uint32_t size) { markers.resize((size_t)size); }
00038 ROS_DEPRECATED void get_markers_vec(std::vector< ::visualization_msgs::Marker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::Marker_<ContainerAllocator> >::other > & vec) const { vec = this->markers; }
00039 ROS_DEPRECATED void set_markers_vec(const std::vector< ::visualization_msgs::Marker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::Marker_<ContainerAllocator> >::other > & vec) { this->markers = vec; }
00040 private:
00041 static const char* __s_getDataType_() { return "visualization_msgs/MarkerArray"; }
00042 public:
00043 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00044
00045 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00046
00047 private:
00048 static const char* __s_getMD5Sum_() { return "f10fe193d6fac1bf68fad5d31da421a7"; }
00049 public:
00050 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00051
00052 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00053
00054 private:
00055 static const char* __s_getMessageDefinition_() { return "Marker[] markers\n\
00056 \n\
00057 ================================================================================\n\
00058 MSG: visualization_msgs/Marker\n\
00059 # See http://www.ros.org/wiki/rviz/DisplayTypes/Marker and http://www.ros.org/wiki/rviz/Tutorials/Markers%3A%20Basic%20Shapes for more information on using this message with rviz\n\
00060 \n\
00061 byte ARROW=0\n\
00062 byte CUBE=1\n\
00063 byte SPHERE=2\n\
00064 byte CYLINDER=3\n\
00065 byte LINE_STRIP=4\n\
00066 byte LINE_LIST=5\n\
00067 byte CUBE_LIST=6\n\
00068 byte SPHERE_LIST=7\n\
00069 byte POINTS=8\n\
00070 byte TEXT_VIEW_FACING=9\n\
00071 byte MESH_RESOURCE=10\n\
00072 byte TRIANGLE_LIST=11\n\
00073 \n\
00074 byte ADD=0\n\
00075 byte MODIFY=0\n\
00076 byte DELETE=2\n\
00077 \n\
00078 Header header # header for time/frame information\n\
00079 string ns # Namespace to place this object in... used in conjunction with id to create a unique name for the object\n\
00080 int32 id # object ID useful in conjunction with the namespace for manipulating and deleting the object later\n\
00081 int32 type # Type of object\n\
00082 int32 action # 0 add/modify an object, 1 (deprecated), 2 deletes an object\n\
00083 geometry_msgs/Pose pose # Pose of the object\n\
00084 geometry_msgs/Vector3 scale # Scale of the object 1,1,1 means default (usually 1 meter square)\n\
00085 std_msgs/ColorRGBA color # Color [0.0-1.0]\n\
00086 duration lifetime # How long the object should last before being automatically deleted. 0 means forever\n\
00087 bool frame_locked # If this marker should be frame-locked, i.e. retransformed into its frame every timestep\n\
00088 \n\
00089 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00090 geometry_msgs/Point[] points\n\
00091 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00092 #number of colors must either be 0 or equal to the number of points\n\
00093 #NOTE: alpha is not yet used\n\
00094 std_msgs/ColorRGBA[] colors\n\
00095 \n\
00096 # NOTE: only used for text markers\n\
00097 string text\n\
00098 \n\
00099 # NOTE: only used for MESH_RESOURCE markers\n\
00100 string mesh_resource\n\
00101 bool mesh_use_embedded_materials\n\
00102 \n\
00103 ================================================================================\n\
00104 MSG: std_msgs/Header\n\
00105 # Standard metadata for higher-level stamped data types.\n\
00106 # This is generally used to communicate timestamped data \n\
00107 # in a particular coordinate frame.\n\
00108 # \n\
00109 # sequence ID: consecutively increasing ID \n\
00110 uint32 seq\n\
00111 #Two-integer timestamp that is expressed as:\n\
00112 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00113 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00114 # time-handling sugar is provided by the client library\n\
00115 time stamp\n\
00116 #Frame this data is associated with\n\
00117 # 0: no frame\n\
00118 # 1: global frame\n\
00119 string frame_id\n\
00120 \n\
00121 ================================================================================\n\
00122 MSG: geometry_msgs/Pose\n\
00123 # A representation of pose in free space, composed of postion and orientation. \n\
00124 Point position\n\
00125 Quaternion orientation\n\
00126 \n\
00127 ================================================================================\n\
00128 MSG: geometry_msgs/Point\n\
00129 # This contains the position of a point in free space\n\
00130 float64 x\n\
00131 float64 y\n\
00132 float64 z\n\
00133 \n\
00134 ================================================================================\n\
00135 MSG: geometry_msgs/Quaternion\n\
00136 # This represents an orientation in free space in quaternion form.\n\
00137 \n\
00138 float64 x\n\
00139 float64 y\n\
00140 float64 z\n\
00141 float64 w\n\
00142 \n\
00143 ================================================================================\n\
00144 MSG: geometry_msgs/Vector3\n\
00145 # This represents a vector in free space. \n\
00146 \n\
00147 float64 x\n\
00148 float64 y\n\
00149 float64 z\n\
00150 ================================================================================\n\
00151 MSG: std_msgs/ColorRGBA\n\
00152 float32 r\n\
00153 float32 g\n\
00154 float32 b\n\
00155 float32 a\n\
00156 \n\
00157 "; }
00158 public:
00159 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00160
00161 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00162
00163 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00164 {
00165 ros::serialization::OStream stream(write_ptr, 1000000000);
00166 ros::serialization::serialize(stream, markers);
00167 return stream.getData();
00168 }
00169
00170 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00171 {
00172 ros::serialization::IStream stream(read_ptr, 1000000000);
00173 ros::serialization::deserialize(stream, markers);
00174 return stream.getData();
00175 }
00176
00177 ROS_DEPRECATED virtual uint32_t serializationLength() const
00178 {
00179 uint32_t size = 0;
00180 size += ros::serialization::serializationLength(markers);
00181 return size;
00182 }
00183
00184 typedef boost::shared_ptr< ::visualization_msgs::MarkerArray_<ContainerAllocator> > Ptr;
00185 typedef boost::shared_ptr< ::visualization_msgs::MarkerArray_<ContainerAllocator> const> ConstPtr;
00186 };
00187 typedef ::visualization_msgs::MarkerArray_<std::allocator<void> > MarkerArray;
00188
00189 typedef boost::shared_ptr< ::visualization_msgs::MarkerArray> MarkerArrayPtr;
00190 typedef boost::shared_ptr< ::visualization_msgs::MarkerArray const> MarkerArrayConstPtr;
00191
00192
00193 template<typename ContainerAllocator>
00194 std::ostream& operator<<(std::ostream& s, const ::visualization_msgs::MarkerArray_<ContainerAllocator> & v)
00195 {
00196 ros::message_operations::Printer< ::visualization_msgs::MarkerArray_<ContainerAllocator> >::stream(s, "", v);
00197 return s;}
00198
00199 }
00200
00201 namespace ros
00202 {
00203 namespace message_traits
00204 {
00205 template<class ContainerAllocator>
00206 struct MD5Sum< ::visualization_msgs::MarkerArray_<ContainerAllocator> > {
00207 static const char* value()
00208 {
00209 return "f10fe193d6fac1bf68fad5d31da421a7";
00210 }
00211
00212 static const char* value(const ::visualization_msgs::MarkerArray_<ContainerAllocator> &) { return value(); }
00213 static const uint64_t static_value1 = 0xf10fe193d6fac1bfULL;
00214 static const uint64_t static_value2 = 0x68fad5d31da421a7ULL;
00215 };
00216
00217 template<class ContainerAllocator>
00218 struct DataType< ::visualization_msgs::MarkerArray_<ContainerAllocator> > {
00219 static const char* value()
00220 {
00221 return "visualization_msgs/MarkerArray";
00222 }
00223
00224 static const char* value(const ::visualization_msgs::MarkerArray_<ContainerAllocator> &) { return value(); }
00225 };
00226
00227 template<class ContainerAllocator>
00228 struct Definition< ::visualization_msgs::MarkerArray_<ContainerAllocator> > {
00229 static const char* value()
00230 {
00231 return "Marker[] markers\n\
00232 \n\
00233 ================================================================================\n\
00234 MSG: visualization_msgs/Marker\n\
00235 # See http://www.ros.org/wiki/rviz/DisplayTypes/Marker and http://www.ros.org/wiki/rviz/Tutorials/Markers%3A%20Basic%20Shapes for more information on using this message with rviz\n\
00236 \n\
00237 byte ARROW=0\n\
00238 byte CUBE=1\n\
00239 byte SPHERE=2\n\
00240 byte CYLINDER=3\n\
00241 byte LINE_STRIP=4\n\
00242 byte LINE_LIST=5\n\
00243 byte CUBE_LIST=6\n\
00244 byte SPHERE_LIST=7\n\
00245 byte POINTS=8\n\
00246 byte TEXT_VIEW_FACING=9\n\
00247 byte MESH_RESOURCE=10\n\
00248 byte TRIANGLE_LIST=11\n\
00249 \n\
00250 byte ADD=0\n\
00251 byte MODIFY=0\n\
00252 byte DELETE=2\n\
00253 \n\
00254 Header header # header for time/frame information\n\
00255 string ns # Namespace to place this object in... used in conjunction with id to create a unique name for the object\n\
00256 int32 id # object ID useful in conjunction with the namespace for manipulating and deleting the object later\n\
00257 int32 type # Type of object\n\
00258 int32 action # 0 add/modify an object, 1 (deprecated), 2 deletes an object\n\
00259 geometry_msgs/Pose pose # Pose of the object\n\
00260 geometry_msgs/Vector3 scale # Scale of the object 1,1,1 means default (usually 1 meter square)\n\
00261 std_msgs/ColorRGBA color # Color [0.0-1.0]\n\
00262 duration lifetime # How long the object should last before being automatically deleted. 0 means forever\n\
00263 bool frame_locked # If this marker should be frame-locked, i.e. retransformed into its frame every timestep\n\
00264 \n\
00265 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00266 geometry_msgs/Point[] points\n\
00267 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00268 #number of colors must either be 0 or equal to the number of points\n\
00269 #NOTE: alpha is not yet used\n\
00270 std_msgs/ColorRGBA[] colors\n\
00271 \n\
00272 # NOTE: only used for text markers\n\
00273 string text\n\
00274 \n\
00275 # NOTE: only used for MESH_RESOURCE markers\n\
00276 string mesh_resource\n\
00277 bool mesh_use_embedded_materials\n\
00278 \n\
00279 ================================================================================\n\
00280 MSG: std_msgs/Header\n\
00281 # Standard metadata for higher-level stamped data types.\n\
00282 # This is generally used to communicate timestamped data \n\
00283 # in a particular coordinate frame.\n\
00284 # \n\
00285 # sequence ID: consecutively increasing ID \n\
00286 uint32 seq\n\
00287 #Two-integer timestamp that is expressed as:\n\
00288 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00289 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00290 # time-handling sugar is provided by the client library\n\
00291 time stamp\n\
00292 #Frame this data is associated with\n\
00293 # 0: no frame\n\
00294 # 1: global frame\n\
00295 string frame_id\n\
00296 \n\
00297 ================================================================================\n\
00298 MSG: geometry_msgs/Pose\n\
00299 # A representation of pose in free space, composed of postion and orientation. \n\
00300 Point position\n\
00301 Quaternion orientation\n\
00302 \n\
00303 ================================================================================\n\
00304 MSG: geometry_msgs/Point\n\
00305 # This contains the position of a point in free space\n\
00306 float64 x\n\
00307 float64 y\n\
00308 float64 z\n\
00309 \n\
00310 ================================================================================\n\
00311 MSG: geometry_msgs/Quaternion\n\
00312 # This represents an orientation in free space in quaternion form.\n\
00313 \n\
00314 float64 x\n\
00315 float64 y\n\
00316 float64 z\n\
00317 float64 w\n\
00318 \n\
00319 ================================================================================\n\
00320 MSG: geometry_msgs/Vector3\n\
00321 # This represents a vector in free space. \n\
00322 \n\
00323 float64 x\n\
00324 float64 y\n\
00325 float64 z\n\
00326 ================================================================================\n\
00327 MSG: std_msgs/ColorRGBA\n\
00328 float32 r\n\
00329 float32 g\n\
00330 float32 b\n\
00331 float32 a\n\
00332 \n\
00333 ";
00334 }
00335
00336 static const char* value(const ::visualization_msgs::MarkerArray_<ContainerAllocator> &) { return value(); }
00337 };
00338
00339 }
00340 }
00341
00342 namespace ros
00343 {
00344 namespace serialization
00345 {
00346
00347 template<class ContainerAllocator> struct Serializer< ::visualization_msgs::MarkerArray_<ContainerAllocator> >
00348 {
00349 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00350 {
00351 stream.next(m.markers);
00352 }
00353
00354 ROS_DECLARE_ALLINONE_SERIALIZER;
00355 };
00356 }
00357 }
00358
00359 namespace ros
00360 {
00361 namespace message_operations
00362 {
00363
00364 template<class ContainerAllocator>
00365 struct Printer< ::visualization_msgs::MarkerArray_<ContainerAllocator> >
00366 {
00367 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::visualization_msgs::MarkerArray_<ContainerAllocator> & v)
00368 {
00369 s << indent << "markers[]" << std::endl;
00370 for (size_t i = 0; i < v.markers.size(); ++i)
00371 {
00372 s << indent << " markers[" << i << "]: ";
00373 s << std::endl;
00374 s << indent;
00375 Printer< ::visualization_msgs::Marker_<ContainerAllocator> >::stream(s, indent + " ", v.markers[i]);
00376 }
00377 }
00378 };
00379
00380
00381 }
00382 }
00383
00384 #endif // VISUALIZATION_MSGS_MESSAGE_MARKERARRAY_H
00385