Go to the documentation of this file.00001
00002 #ifndef IRI_LEAF_SEGMENTATION_SERVICE_GETCLUSTEREDIMAGE_H
00003 #define IRI_LEAF_SEGMENTATION_SERVICE_GETCLUSTEREDIMAGE_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 "ros/service_traits.h"
00018
00019 #include "sensor_msgs/PointCloud2.h"
00020
00021
00022 #include "std_msgs/UInt32.h"
00023 #include "std_msgs/UInt32MultiArray.h"
00024
00025 namespace iri_leaf_segmentation
00026 {
00027 template <class ContainerAllocator>
00028 struct GetClusteredImageRequest_ {
00029 typedef GetClusteredImageRequest_<ContainerAllocator> Type;
00030
00031 GetClusteredImageRequest_()
00032 : point_cloud()
00033 {
00034 }
00035
00036 GetClusteredImageRequest_(const ContainerAllocator& _alloc)
00037 : point_cloud(_alloc)
00038 {
00039 }
00040
00041 typedef ::sensor_msgs::PointCloud2_<ContainerAllocator> _point_cloud_type;
00042 ::sensor_msgs::PointCloud2_<ContainerAllocator> point_cloud;
00043
00044
00045 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > Ptr;
00046 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> const> ConstPtr;
00047 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00048 };
00049 typedef ::iri_leaf_segmentation::GetClusteredImageRequest_<std::allocator<void> > GetClusteredImageRequest;
00050
00051 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageRequest> GetClusteredImageRequestPtr;
00052 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageRequest const> GetClusteredImageRequestConstPtr;
00053
00054
00055 template <class ContainerAllocator>
00056 struct GetClusteredImageResponse_ {
00057 typedef GetClusteredImageResponse_<ContainerAllocator> Type;
00058
00059 GetClusteredImageResponse_()
00060 : num_clusters()
00061 , cluster_labels()
00062 {
00063 }
00064
00065 GetClusteredImageResponse_(const ContainerAllocator& _alloc)
00066 : num_clusters(_alloc)
00067 , cluster_labels(_alloc)
00068 {
00069 }
00070
00071 typedef ::std_msgs::UInt32_<ContainerAllocator> _num_clusters_type;
00072 ::std_msgs::UInt32_<ContainerAllocator> num_clusters;
00073
00074 typedef ::std_msgs::UInt32MultiArray_<ContainerAllocator> _cluster_labels_type;
00075 ::std_msgs::UInt32MultiArray_<ContainerAllocator> cluster_labels;
00076
00077
00078 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > Ptr;
00079 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> const> ConstPtr;
00080 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00081 };
00082 typedef ::iri_leaf_segmentation::GetClusteredImageResponse_<std::allocator<void> > GetClusteredImageResponse;
00083
00084 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageResponse> GetClusteredImageResponsePtr;
00085 typedef boost::shared_ptr< ::iri_leaf_segmentation::GetClusteredImageResponse const> GetClusteredImageResponseConstPtr;
00086
00087 struct GetClusteredImage
00088 {
00089
00090 typedef GetClusteredImageRequest Request;
00091 typedef GetClusteredImageResponse Response;
00092 Request request;
00093 Response response;
00094
00095 typedef Request RequestType;
00096 typedef Response ResponseType;
00097 };
00098 }
00099
00100 namespace ros
00101 {
00102 namespace message_traits
00103 {
00104 template<class ContainerAllocator> struct IsMessage< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > : public TrueType {};
00105 template<class ContainerAllocator> struct IsMessage< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> const> : public TrueType {};
00106 template<class ContainerAllocator>
00107 struct MD5Sum< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > {
00108 static const char* value()
00109 {
00110 return "d8288ab03c94033ddae07988baace1f7";
00111 }
00112
00113 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> &) { return value(); }
00114 static const uint64_t static_value1 = 0xd8288ab03c94033dULL;
00115 static const uint64_t static_value2 = 0xdae07988baace1f7ULL;
00116 };
00117
00118 template<class ContainerAllocator>
00119 struct DataType< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > {
00120 static const char* value()
00121 {
00122 return "iri_leaf_segmentation/GetClusteredImageRequest";
00123 }
00124
00125 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> &) { return value(); }
00126 };
00127
00128 template<class ContainerAllocator>
00129 struct Definition< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > {
00130 static const char* value()
00131 {
00132 return "\n\
00133 sensor_msgs/PointCloud2 point_cloud\n\
00134 \n\
00135 ================================================================================\n\
00136 MSG: sensor_msgs/PointCloud2\n\
00137 # This message holds a collection of N-dimensional points, which may\n\
00138 # contain additional information such as normals, intensity, etc. The\n\
00139 # point data is stored as a binary blob, its layout described by the\n\
00140 # contents of the \"fields\" array.\n\
00141 \n\
00142 # The point cloud data may be organized 2d (image-like) or 1d\n\
00143 # (unordered). Point clouds organized as 2d images may be produced by\n\
00144 # camera depth sensors such as stereo or time-of-flight.\n\
00145 \n\
00146 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
00147 # points).\n\
00148 Header header\n\
00149 \n\
00150 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
00151 # 1 and width is the length of the point cloud.\n\
00152 uint32 height\n\
00153 uint32 width\n\
00154 \n\
00155 # Describes the channels and their layout in the binary data blob.\n\
00156 PointField[] fields\n\
00157 \n\
00158 bool is_bigendian # Is this data bigendian?\n\
00159 uint32 point_step # Length of a point in bytes\n\
00160 uint32 row_step # Length of a row in bytes\n\
00161 uint8[] data # Actual point data, size is (row_step*height)\n\
00162 \n\
00163 bool is_dense # True if there are no invalid points\n\
00164 \n\
00165 ================================================================================\n\
00166 MSG: std_msgs/Header\n\
00167 # Standard metadata for higher-level stamped data types.\n\
00168 # This is generally used to communicate timestamped data \n\
00169 # in a particular coordinate frame.\n\
00170 # \n\
00171 # sequence ID: consecutively increasing ID \n\
00172 uint32 seq\n\
00173 #Two-integer timestamp that is expressed as:\n\
00174 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00175 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00176 # time-handling sugar is provided by the client library\n\
00177 time stamp\n\
00178 #Frame this data is associated with\n\
00179 # 0: no frame\n\
00180 # 1: global frame\n\
00181 string frame_id\n\
00182 \n\
00183 ================================================================================\n\
00184 MSG: sensor_msgs/PointField\n\
00185 # This message holds the description of one point entry in the\n\
00186 # PointCloud2 message format.\n\
00187 uint8 INT8 = 1\n\
00188 uint8 UINT8 = 2\n\
00189 uint8 INT16 = 3\n\
00190 uint8 UINT16 = 4\n\
00191 uint8 INT32 = 5\n\
00192 uint8 UINT32 = 6\n\
00193 uint8 FLOAT32 = 7\n\
00194 uint8 FLOAT64 = 8\n\
00195 \n\
00196 string name # Name of field\n\
00197 uint32 offset # Offset from start of point struct\n\
00198 uint8 datatype # Datatype enumeration, see above\n\
00199 uint32 count # How many elements in the field\n\
00200 \n\
00201 ";
00202 }
00203
00204 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> &) { return value(); }
00205 };
00206
00207 }
00208 }
00209
00210
00211 namespace ros
00212 {
00213 namespace message_traits
00214 {
00215 template<class ContainerAllocator> struct IsMessage< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > : public TrueType {};
00216 template<class ContainerAllocator> struct IsMessage< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> const> : public TrueType {};
00217 template<class ContainerAllocator>
00218 struct MD5Sum< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > {
00219 static const char* value()
00220 {
00221 return "473c59501c5a8d02d0d0a1bc6ce725b3";
00222 }
00223
00224 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> &) { return value(); }
00225 static const uint64_t static_value1 = 0x473c59501c5a8d02ULL;
00226 static const uint64_t static_value2 = 0xd0d0a1bc6ce725b3ULL;
00227 };
00228
00229 template<class ContainerAllocator>
00230 struct DataType< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > {
00231 static const char* value()
00232 {
00233 return "iri_leaf_segmentation/GetClusteredImageResponse";
00234 }
00235
00236 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> &) { return value(); }
00237 };
00238
00239 template<class ContainerAllocator>
00240 struct Definition< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > {
00241 static const char* value()
00242 {
00243 return "\n\
00244 std_msgs/UInt32 num_clusters\n\
00245 std_msgs/UInt32MultiArray cluster_labels\n\
00246 \n\
00247 \n\
00248 ================================================================================\n\
00249 MSG: std_msgs/UInt32\n\
00250 uint32 data\n\
00251 ================================================================================\n\
00252 MSG: std_msgs/UInt32MultiArray\n\
00253 # Please look at the MultiArrayLayout message definition for\n\
00254 # documentation on all multiarrays.\n\
00255 \n\
00256 MultiArrayLayout layout # specification of data layout\n\
00257 uint32[] data # array of data\n\
00258 \n\
00259 \n\
00260 ================================================================================\n\
00261 MSG: std_msgs/MultiArrayLayout\n\
00262 # The multiarray declares a generic multi-dimensional array of a\n\
00263 # particular data type. Dimensions are ordered from outer most\n\
00264 # to inner most.\n\
00265 \n\
00266 MultiArrayDimension[] dim # Array of dimension properties\n\
00267 uint32 data_offset # padding bytes at front of data\n\
00268 \n\
00269 # Accessors should ALWAYS be written in terms of dimension stride\n\
00270 # and specified outer-most dimension first.\n\
00271 # \n\
00272 # multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\
00273 #\n\
00274 # A standard, 3-channel 640x480 image with interleaved color channels\n\
00275 # would be specified as:\n\
00276 #\n\
00277 # dim[0].label = \"height\"\n\
00278 # dim[0].size = 480\n\
00279 # dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\
00280 # dim[1].label = \"width\"\n\
00281 # dim[1].size = 640\n\
00282 # dim[1].stride = 3*640 = 1920\n\
00283 # dim[2].label = \"channel\"\n\
00284 # dim[2].size = 3\n\
00285 # dim[2].stride = 3\n\
00286 #\n\
00287 # multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\
00288 ================================================================================\n\
00289 MSG: std_msgs/MultiArrayDimension\n\
00290 string label # label of given dimension\n\
00291 uint32 size # size of given dimension (in type units)\n\
00292 uint32 stride # stride of given dimension\n\
00293 ";
00294 }
00295
00296 static const char* value(const ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> &) { return value(); }
00297 };
00298
00299 }
00300 }
00301
00302 namespace ros
00303 {
00304 namespace serialization
00305 {
00306
00307 template<class ContainerAllocator> struct Serializer< ::iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> >
00308 {
00309 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00310 {
00311 stream.next(m.point_cloud);
00312 }
00313
00314 ROS_DECLARE_ALLINONE_SERIALIZER;
00315 };
00316 }
00317 }
00318
00319
00320 namespace ros
00321 {
00322 namespace serialization
00323 {
00324
00325 template<class ContainerAllocator> struct Serializer< ::iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> >
00326 {
00327 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00328 {
00329 stream.next(m.num_clusters);
00330 stream.next(m.cluster_labels);
00331 }
00332
00333 ROS_DECLARE_ALLINONE_SERIALIZER;
00334 };
00335 }
00336 }
00337
00338 namespace ros
00339 {
00340 namespace service_traits
00341 {
00342 template<>
00343 struct MD5Sum<iri_leaf_segmentation::GetClusteredImage> {
00344 static const char* value()
00345 {
00346 return "c50deb273a1d93ca8b34b168c428c102";
00347 }
00348
00349 static const char* value(const iri_leaf_segmentation::GetClusteredImage&) { return value(); }
00350 };
00351
00352 template<>
00353 struct DataType<iri_leaf_segmentation::GetClusteredImage> {
00354 static const char* value()
00355 {
00356 return "iri_leaf_segmentation/GetClusteredImage";
00357 }
00358
00359 static const char* value(const iri_leaf_segmentation::GetClusteredImage&) { return value(); }
00360 };
00361
00362 template<class ContainerAllocator>
00363 struct MD5Sum<iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > {
00364 static const char* value()
00365 {
00366 return "c50deb273a1d93ca8b34b168c428c102";
00367 }
00368
00369 static const char* value(const iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> &) { return value(); }
00370 };
00371
00372 template<class ContainerAllocator>
00373 struct DataType<iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> > {
00374 static const char* value()
00375 {
00376 return "iri_leaf_segmentation/GetClusteredImage";
00377 }
00378
00379 static const char* value(const iri_leaf_segmentation::GetClusteredImageRequest_<ContainerAllocator> &) { return value(); }
00380 };
00381
00382 template<class ContainerAllocator>
00383 struct MD5Sum<iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > {
00384 static const char* value()
00385 {
00386 return "c50deb273a1d93ca8b34b168c428c102";
00387 }
00388
00389 static const char* value(const iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> &) { return value(); }
00390 };
00391
00392 template<class ContainerAllocator>
00393 struct DataType<iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> > {
00394 static const char* value()
00395 {
00396 return "iri_leaf_segmentation/GetClusteredImage";
00397 }
00398
00399 static const char* value(const iri_leaf_segmentation::GetClusteredImageResponse_<ContainerAllocator> &) { return value(); }
00400 };
00401
00402 }
00403 }
00404
00405 #endif // IRI_LEAF_SEGMENTATION_SERVICE_GETCLUSTEREDIMAGE_H
00406