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