Go to the documentation of this file.00001
00002 #ifndef PR2_CLUTTER_HELPER_SERVICE_GETPOINTCLOUD_H
00003 #define PR2_CLUTTER_HELPER_SERVICE_GETPOINTCLOUD_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
00020
00021 #include "sensor_msgs/PointCloud.h"
00022
00023 namespace pr2_clutter_helper
00024 {
00025 template <class ContainerAllocator>
00026 struct GetPointCloudRequest_ {
00027 typedef GetPointCloudRequest_<ContainerAllocator> Type;
00028
00029 GetPointCloudRequest_()
00030 : topic_name()
00031 , msg_type()
00032 {
00033 }
00034
00035 GetPointCloudRequest_(const ContainerAllocator& _alloc)
00036 : topic_name(_alloc)
00037 , msg_type(_alloc)
00038 {
00039 }
00040
00041 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _topic_name_type;
00042 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > topic_name;
00043
00044 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _msg_type_type;
00045 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > msg_type;
00046
00047
00048 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > Ptr;
00049 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> const> ConstPtr;
00050 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00051 };
00052 typedef ::pr2_clutter_helper::GetPointCloudRequest_<std::allocator<void> > GetPointCloudRequest;
00053
00054 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudRequest> GetPointCloudRequestPtr;
00055 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudRequest const> GetPointCloudRequestConstPtr;
00056
00057
00058 template <class ContainerAllocator>
00059 struct GetPointCloudResponse_ {
00060 typedef GetPointCloudResponse_<ContainerAllocator> Type;
00061
00062 GetPointCloudResponse_()
00063 : cloud()
00064 {
00065 }
00066
00067 GetPointCloudResponse_(const ContainerAllocator& _alloc)
00068 : cloud(_alloc)
00069 {
00070 }
00071
00072 typedef ::sensor_msgs::PointCloud_<ContainerAllocator> _cloud_type;
00073 ::sensor_msgs::PointCloud_<ContainerAllocator> cloud;
00074
00075
00076 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > Ptr;
00077 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> const> ConstPtr;
00078 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00079 };
00080 typedef ::pr2_clutter_helper::GetPointCloudResponse_<std::allocator<void> > GetPointCloudResponse;
00081
00082 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudResponse> GetPointCloudResponsePtr;
00083 typedef boost::shared_ptr< ::pr2_clutter_helper::GetPointCloudResponse const> GetPointCloudResponseConstPtr;
00084
00085 struct GetPointCloud
00086 {
00087
00088 typedef GetPointCloudRequest Request;
00089 typedef GetPointCloudResponse Response;
00090 Request request;
00091 Response response;
00092
00093 typedef Request RequestType;
00094 typedef Response ResponseType;
00095 };
00096 }
00097
00098 namespace ros
00099 {
00100 namespace message_traits
00101 {
00102 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "13abbc87c0c0b2fc9a6d87f74375a5d7";
00109 }
00110
00111 static const char* value(const ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0x13abbc87c0c0b2fcULL;
00113 static const uint64_t static_value2 = 0x9a6d87f74375a5d7ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "pr2_clutter_helper/GetPointCloudRequest";
00121 }
00122
00123 static const char* value(const ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "string topic_name\n\
00131 string msg_type\n\
00132 \n\
00133 ";
00134 }
00135
00136 static const char* value(const ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> &) { return value(); }
00137 };
00138
00139 }
00140 }
00141
00142
00143 namespace ros
00144 {
00145 namespace message_traits
00146 {
00147 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > : public TrueType {};
00148 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> const> : public TrueType {};
00149 template<class ContainerAllocator>
00150 struct MD5Sum< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > {
00151 static const char* value()
00152 {
00153 return "4217b28a903e4ad7869a83b3653110ff";
00154 }
00155
00156 static const char* value(const ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> &) { return value(); }
00157 static const uint64_t static_value1 = 0x4217b28a903e4ad7ULL;
00158 static const uint64_t static_value2 = 0x869a83b3653110ffULL;
00159 };
00160
00161 template<class ContainerAllocator>
00162 struct DataType< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > {
00163 static const char* value()
00164 {
00165 return "pr2_clutter_helper/GetPointCloudResponse";
00166 }
00167
00168 static const char* value(const ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> &) { return value(); }
00169 };
00170
00171 template<class ContainerAllocator>
00172 struct Definition< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > {
00173 static const char* value()
00174 {
00175 return "sensor_msgs/PointCloud cloud\n\
00176 \n\
00177 \n\
00178 ================================================================================\n\
00179 MSG: sensor_msgs/PointCloud\n\
00180 # This message holds a collection of 3d points, plus optional additional\n\
00181 # information about each point.\n\
00182 \n\
00183 # Time of sensor data acquisition, coordinate frame ID.\n\
00184 Header header\n\
00185 \n\
00186 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00187 # in the frame given in the header.\n\
00188 geometry_msgs/Point32[] points\n\
00189 \n\
00190 # Each channel should have the same number of elements as points array,\n\
00191 # and the data in each channel should correspond 1:1 with each point.\n\
00192 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00193 ChannelFloat32[] channels\n\
00194 \n\
00195 ================================================================================\n\
00196 MSG: std_msgs/Header\n\
00197 # Standard metadata for higher-level stamped data types.\n\
00198 # This is generally used to communicate timestamped data \n\
00199 # in a particular coordinate frame.\n\
00200 # \n\
00201 # sequence ID: consecutively increasing ID \n\
00202 uint32 seq\n\
00203 #Two-integer timestamp that is expressed as:\n\
00204 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00205 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00206 # time-handling sugar is provided by the client library\n\
00207 time stamp\n\
00208 #Frame this data is associated with\n\
00209 # 0: no frame\n\
00210 # 1: global frame\n\
00211 string frame_id\n\
00212 \n\
00213 ================================================================================\n\
00214 MSG: geometry_msgs/Point32\n\
00215 # This contains the position of a point in free space(with 32 bits of precision).\n\
00216 # It is recommeded to use Point wherever possible instead of Point32. \n\
00217 # \n\
00218 # This recommendation is to promote interoperability. \n\
00219 #\n\
00220 # This message is designed to take up less space when sending\n\
00221 # lots of points at once, as in the case of a PointCloud. \n\
00222 \n\
00223 float32 x\n\
00224 float32 y\n\
00225 float32 z\n\
00226 ================================================================================\n\
00227 MSG: sensor_msgs/ChannelFloat32\n\
00228 # This message is used by the PointCloud message to hold optional data\n\
00229 # associated with each point in the cloud. The length of the values\n\
00230 # array should be the same as the length of the points array in the\n\
00231 # PointCloud, and each value should be associated with the corresponding\n\
00232 # point.\n\
00233 \n\
00234 # Channel names in existing practice include:\n\
00235 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00236 # This is opposite to usual conventions but remains for\n\
00237 # historical reasons. The newer PointCloud2 message has no\n\
00238 # such problem.\n\
00239 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00240 # (R,G,B) values packed into the least significant 24 bits,\n\
00241 # in order.\n\
00242 # \"intensity\" - laser or pixel intensity.\n\
00243 # \"distance\"\n\
00244 \n\
00245 # The channel name should give semantics of the channel (e.g.\n\
00246 # \"intensity\" instead of \"value\").\n\
00247 string name\n\
00248 \n\
00249 # The values array should be 1-1 with the elements of the associated\n\
00250 # PointCloud.\n\
00251 float32[] values\n\
00252 \n\
00253 ";
00254 }
00255
00256 static const char* value(const ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> &) { return value(); }
00257 };
00258
00259 }
00260 }
00261
00262 namespace ros
00263 {
00264 namespace serialization
00265 {
00266
00267 template<class ContainerAllocator> struct Serializer< ::pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> >
00268 {
00269 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00270 {
00271 stream.next(m.topic_name);
00272 stream.next(m.msg_type);
00273 }
00274
00275 ROS_DECLARE_ALLINONE_SERIALIZER;
00276 };
00277 }
00278 }
00279
00280
00281 namespace ros
00282 {
00283 namespace serialization
00284 {
00285
00286 template<class ContainerAllocator> struct Serializer< ::pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> >
00287 {
00288 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00289 {
00290 stream.next(m.cloud);
00291 }
00292
00293 ROS_DECLARE_ALLINONE_SERIALIZER;
00294 };
00295 }
00296 }
00297
00298 namespace ros
00299 {
00300 namespace service_traits
00301 {
00302 template<>
00303 struct MD5Sum<pr2_clutter_helper::GetPointCloud> {
00304 static const char* value()
00305 {
00306 return "9a1e4b0e1f3f9c87221bd8deaf5df60f";
00307 }
00308
00309 static const char* value(const pr2_clutter_helper::GetPointCloud&) { return value(); }
00310 };
00311
00312 template<>
00313 struct DataType<pr2_clutter_helper::GetPointCloud> {
00314 static const char* value()
00315 {
00316 return "pr2_clutter_helper/GetPointCloud";
00317 }
00318
00319 static const char* value(const pr2_clutter_helper::GetPointCloud&) { return value(); }
00320 };
00321
00322 template<class ContainerAllocator>
00323 struct MD5Sum<pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > {
00324 static const char* value()
00325 {
00326 return "9a1e4b0e1f3f9c87221bd8deaf5df60f";
00327 }
00328
00329 static const char* value(const pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> &) { return value(); }
00330 };
00331
00332 template<class ContainerAllocator>
00333 struct DataType<pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> > {
00334 static const char* value()
00335 {
00336 return "pr2_clutter_helper/GetPointCloud";
00337 }
00338
00339 static const char* value(const pr2_clutter_helper::GetPointCloudRequest_<ContainerAllocator> &) { return value(); }
00340 };
00341
00342 template<class ContainerAllocator>
00343 struct MD5Sum<pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > {
00344 static const char* value()
00345 {
00346 return "9a1e4b0e1f3f9c87221bd8deaf5df60f";
00347 }
00348
00349 static const char* value(const pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> &) { return value(); }
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct DataType<pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "pr2_clutter_helper/GetPointCloud";
00357 }
00358
00359 static const char* value(const pr2_clutter_helper::GetPointCloudResponse_<ContainerAllocator> &) { return value(); }
00360 };
00361
00362 }
00363 }
00364
00365 #endif // PR2_CLUTTER_HELPER_SERVICE_GETPOINTCLOUD_H
00366