00001
00002 #ifndef GRASPIT_INTERFACE_MSGS_SERVICE_SIMULATESCAN_H
00003 #define GRASPIT_INTERFACE_MSGS_SERVICE_SIMULATESCAN_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 "geometry_msgs/Pose.h"
00020
00021
00022 #include "sensor_msgs/PointCloud2.h"
00023 #include "geometry_msgs/Point32.h"
00024
00025 namespace graspit_interface_msgs
00026 {
00027 template <class ContainerAllocator>
00028 struct SimulateScanRequest_ {
00029 typedef SimulateScanRequest_<ContainerAllocator> Type;
00030
00031 SimulateScanRequest_()
00032 : scanner_pose()
00033 , request_ray_directions(false)
00034 {
00035 }
00036
00037 SimulateScanRequest_(const ContainerAllocator& _alloc)
00038 : scanner_pose(_alloc)
00039 , request_ray_directions(false)
00040 {
00041 }
00042
00043 typedef ::geometry_msgs::Pose_<ContainerAllocator> _scanner_pose_type;
00044 ::geometry_msgs::Pose_<ContainerAllocator> scanner_pose;
00045
00046 typedef uint8_t _request_ray_directions_type;
00047 uint8_t request_ray_directions;
00048
00049
00050 private:
00051 static const char* __s_getDataType_() { return "graspit_interface_msgs/SimulateScanRequest"; }
00052 public:
00053 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00054
00055 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00056
00057 private:
00058 static const char* __s_getMD5Sum_() { return "1a813aa3e885cadba26d83919a706a44"; }
00059 public:
00060 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00061
00062 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00063
00064 private:
00065 static const char* __s_getServerMD5Sum_() { return "94771e8a60b9bcb2e1caf023bef79cb6"; }
00066 public:
00067 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00068
00069 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00070
00071 private:
00072 static const char* __s_getMessageDefinition_() { return "\n\
00073 \n\
00074 \n\
00075 \n\
00076 \n\
00077 \n\
00078 \n\
00079 \n\
00080 geometry_msgs/Pose scanner_pose\n\
00081 \n\
00082 bool request_ray_directions\n\
00083 \n\
00084 \n\
00085 ================================================================================\n\
00086 MSG: geometry_msgs/Pose\n\
00087 # A representation of pose in free space, composed of postion and orientation. \n\
00088 Point position\n\
00089 Quaternion orientation\n\
00090 \n\
00091 ================================================================================\n\
00092 MSG: geometry_msgs/Point\n\
00093 # This contains the position of a point in free space\n\
00094 float64 x\n\
00095 float64 y\n\
00096 float64 z\n\
00097 \n\
00098 ================================================================================\n\
00099 MSG: geometry_msgs/Quaternion\n\
00100 # This represents an orientation in free space in quaternion form.\n\
00101 \n\
00102 float64 x\n\
00103 float64 y\n\
00104 float64 z\n\
00105 float64 w\n\
00106 \n\
00107 "; }
00108 public:
00109 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00110
00111 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00112
00113 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00114 {
00115 ros::serialization::OStream stream(write_ptr, 1000000000);
00116 ros::serialization::serialize(stream, scanner_pose);
00117 ros::serialization::serialize(stream, request_ray_directions);
00118 return stream.getData();
00119 }
00120
00121 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00122 {
00123 ros::serialization::IStream stream(read_ptr, 1000000000);
00124 ros::serialization::deserialize(stream, scanner_pose);
00125 ros::serialization::deserialize(stream, request_ray_directions);
00126 return stream.getData();
00127 }
00128
00129 ROS_DEPRECATED virtual uint32_t serializationLength() const
00130 {
00131 uint32_t size = 0;
00132 size += ros::serialization::serializationLength(scanner_pose);
00133 size += ros::serialization::serializationLength(request_ray_directions);
00134 return size;
00135 }
00136
00137 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > Ptr;
00138 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> const> ConstPtr;
00139 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00140 };
00141 typedef ::graspit_interface_msgs::SimulateScanRequest_<std::allocator<void> > SimulateScanRequest;
00142
00143 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanRequest> SimulateScanRequestPtr;
00144 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanRequest const> SimulateScanRequestConstPtr;
00145
00146
00147 template <class ContainerAllocator>
00148 struct SimulateScanResponse_ {
00149 typedef SimulateScanResponse_<ContainerAllocator> Type;
00150
00151 SimulateScanResponse_()
00152 : scan()
00153 , missing_ray_directions()
00154 {
00155 }
00156
00157 SimulateScanResponse_(const ContainerAllocator& _alloc)
00158 : scan(_alloc)
00159 , missing_ray_directions(_alloc)
00160 {
00161 }
00162
00163 typedef ::sensor_msgs::PointCloud2_<ContainerAllocator> _scan_type;
00164 ::sensor_msgs::PointCloud2_<ContainerAllocator> scan;
00165
00166 typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > _missing_ray_directions_type;
00167 std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > missing_ray_directions;
00168
00169
00170 ROS_DEPRECATED uint32_t get_missing_ray_directions_size() const { return (uint32_t)missing_ray_directions.size(); }
00171 ROS_DEPRECATED void set_missing_ray_directions_size(uint32_t size) { missing_ray_directions.resize((size_t)size); }
00172 ROS_DEPRECATED void get_missing_ray_directions_vec(std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > & vec) const { vec = this->missing_ray_directions; }
00173 ROS_DEPRECATED void set_missing_ray_directions_vec(const std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > & vec) { this->missing_ray_directions = vec; }
00174 private:
00175 static const char* __s_getDataType_() { return "graspit_interface_msgs/SimulateScanResponse"; }
00176 public:
00177 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00178
00179 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00180
00181 private:
00182 static const char* __s_getMD5Sum_() { return "1feb66b2a9b2dd4ab7c14f6ef5754e41"; }
00183 public:
00184 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00185
00186 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00187
00188 private:
00189 static const char* __s_getServerMD5Sum_() { return "94771e8a60b9bcb2e1caf023bef79cb6"; }
00190 public:
00191 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00192
00193 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00194
00195 private:
00196 static const char* __s_getMessageDefinition_() { return "\n\
00197 \n\
00198 sensor_msgs/PointCloud2 scan\n\
00199 \n\
00200 geometry_msgs/Point32[] missing_ray_directions\n\
00201 \n\
00202 \n\
00203 ================================================================================\n\
00204 MSG: sensor_msgs/PointCloud2\n\
00205 # This message holds a collection of N-dimensional points, which may\n\
00206 # contain additional information such as normals, intensity, etc. The\n\
00207 # point data is stored as a binary blob, its layout described by the\n\
00208 # contents of the \"fields\" array.\n\
00209 \n\
00210 # The point cloud data may be organized 2d (image-like) or 1d\n\
00211 # (unordered). Point clouds organized as 2d images may be produced by\n\
00212 # camera depth sensors such as stereo or time-of-flight.\n\
00213 \n\
00214 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
00215 # points).\n\
00216 Header header\n\
00217 \n\
00218 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
00219 # 1 and width is the length of the point cloud.\n\
00220 uint32 height\n\
00221 uint32 width\n\
00222 \n\
00223 # Describes the channels and their layout in the binary data blob.\n\
00224 PointField[] fields\n\
00225 \n\
00226 bool is_bigendian # Is this data bigendian?\n\
00227 uint32 point_step # Length of a point in bytes\n\
00228 uint32 row_step # Length of a row in bytes\n\
00229 uint8[] data # Actual point data, size is (row_step*height)\n\
00230 \n\
00231 bool is_dense # True if there are no invalid points\n\
00232 \n\
00233 ================================================================================\n\
00234 MSG: std_msgs/Header\n\
00235 # Standard metadata for higher-level stamped data types.\n\
00236 # This is generally used to communicate timestamped data \n\
00237 # in a particular coordinate frame.\n\
00238 # \n\
00239 # sequence ID: consecutively increasing ID \n\
00240 uint32 seq\n\
00241 #Two-integer timestamp that is expressed as:\n\
00242 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00243 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00244 # time-handling sugar is provided by the client library\n\
00245 time stamp\n\
00246 #Frame this data is associated with\n\
00247 # 0: no frame\n\
00248 # 1: global frame\n\
00249 string frame_id\n\
00250 \n\
00251 ================================================================================\n\
00252 MSG: sensor_msgs/PointField\n\
00253 # This message holds the description of one point entry in the\n\
00254 # PointCloud2 message format.\n\
00255 uint8 INT8 = 1\n\
00256 uint8 UINT8 = 2\n\
00257 uint8 INT16 = 3\n\
00258 uint8 UINT16 = 4\n\
00259 uint8 INT32 = 5\n\
00260 uint8 UINT32 = 6\n\
00261 uint8 FLOAT32 = 7\n\
00262 uint8 FLOAT64 = 8\n\
00263 \n\
00264 string name # Name of field\n\
00265 uint32 offset # Offset from start of point struct\n\
00266 uint8 datatype # Datatype enumeration, see above\n\
00267 uint32 count # How many elements in the field\n\
00268 \n\
00269 ================================================================================\n\
00270 MSG: geometry_msgs/Point32\n\
00271 # This contains the position of a point in free space(with 32 bits of precision).\n\
00272 # It is recommeded to use Point wherever possible instead of Point32. \n\
00273 # \n\
00274 # This recommendation is to promote interoperability. \n\
00275 #\n\
00276 # This message is designed to take up less space when sending\n\
00277 # lots of points at once, as in the case of a PointCloud. \n\
00278 \n\
00279 float32 x\n\
00280 float32 y\n\
00281 float32 z\n\
00282 "; }
00283 public:
00284 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00285
00286 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00287
00288 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00289 {
00290 ros::serialization::OStream stream(write_ptr, 1000000000);
00291 ros::serialization::serialize(stream, scan);
00292 ros::serialization::serialize(stream, missing_ray_directions);
00293 return stream.getData();
00294 }
00295
00296 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00297 {
00298 ros::serialization::IStream stream(read_ptr, 1000000000);
00299 ros::serialization::deserialize(stream, scan);
00300 ros::serialization::deserialize(stream, missing_ray_directions);
00301 return stream.getData();
00302 }
00303
00304 ROS_DEPRECATED virtual uint32_t serializationLength() const
00305 {
00306 uint32_t size = 0;
00307 size += ros::serialization::serializationLength(scan);
00308 size += ros::serialization::serializationLength(missing_ray_directions);
00309 return size;
00310 }
00311
00312 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > Ptr;
00313 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> const> ConstPtr;
00314 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00315 };
00316 typedef ::graspit_interface_msgs::SimulateScanResponse_<std::allocator<void> > SimulateScanResponse;
00317
00318 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanResponse> SimulateScanResponsePtr;
00319 typedef boost::shared_ptr< ::graspit_interface_msgs::SimulateScanResponse const> SimulateScanResponseConstPtr;
00320
00321 struct SimulateScan
00322 {
00323
00324 typedef SimulateScanRequest Request;
00325 typedef SimulateScanResponse Response;
00326 Request request;
00327 Response response;
00328
00329 typedef Request RequestType;
00330 typedef Response ResponseType;
00331 };
00332 }
00333
00334 namespace ros
00335 {
00336 namespace message_traits
00337 {
00338 template<class ContainerAllocator> struct IsMessage< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > : public TrueType {};
00339 template<class ContainerAllocator> struct IsMessage< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> const> : public TrueType {};
00340 template<class ContainerAllocator>
00341 struct MD5Sum< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > {
00342 static const char* value()
00343 {
00344 return "1a813aa3e885cadba26d83919a706a44";
00345 }
00346
00347 static const char* value(const ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> &) { return value(); }
00348 static const uint64_t static_value1 = 0x1a813aa3e885cadbULL;
00349 static const uint64_t static_value2 = 0xa26d83919a706a44ULL;
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct DataType< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "graspit_interface_msgs/SimulateScanRequest";
00357 }
00358
00359 static const char* value(const ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> &) { return value(); }
00360 };
00361
00362 template<class ContainerAllocator>
00363 struct Definition< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > {
00364 static const char* value()
00365 {
00366 return "\n\
00367 \n\
00368 \n\
00369 \n\
00370 \n\
00371 \n\
00372 \n\
00373 \n\
00374 geometry_msgs/Pose scanner_pose\n\
00375 \n\
00376 bool request_ray_directions\n\
00377 \n\
00378 \n\
00379 ================================================================================\n\
00380 MSG: geometry_msgs/Pose\n\
00381 # A representation of pose in free space, composed of postion and orientation. \n\
00382 Point position\n\
00383 Quaternion orientation\n\
00384 \n\
00385 ================================================================================\n\
00386 MSG: geometry_msgs/Point\n\
00387 # This contains the position of a point in free space\n\
00388 float64 x\n\
00389 float64 y\n\
00390 float64 z\n\
00391 \n\
00392 ================================================================================\n\
00393 MSG: geometry_msgs/Quaternion\n\
00394 # This represents an orientation in free space in quaternion form.\n\
00395 \n\
00396 float64 x\n\
00397 float64 y\n\
00398 float64 z\n\
00399 float64 w\n\
00400 \n\
00401 ";
00402 }
00403
00404 static const char* value(const ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> &) { return value(); }
00405 };
00406
00407 template<class ContainerAllocator> struct IsFixedSize< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > : public TrueType {};
00408 }
00409 }
00410
00411
00412 namespace ros
00413 {
00414 namespace message_traits
00415 {
00416 template<class ContainerAllocator> struct IsMessage< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > : public TrueType {};
00417 template<class ContainerAllocator> struct IsMessage< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> const> : public TrueType {};
00418 template<class ContainerAllocator>
00419 struct MD5Sum< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > {
00420 static const char* value()
00421 {
00422 return "1feb66b2a9b2dd4ab7c14f6ef5754e41";
00423 }
00424
00425 static const char* value(const ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> &) { return value(); }
00426 static const uint64_t static_value1 = 0x1feb66b2a9b2dd4aULL;
00427 static const uint64_t static_value2 = 0xb7c14f6ef5754e41ULL;
00428 };
00429
00430 template<class ContainerAllocator>
00431 struct DataType< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > {
00432 static const char* value()
00433 {
00434 return "graspit_interface_msgs/SimulateScanResponse";
00435 }
00436
00437 static const char* value(const ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> &) { return value(); }
00438 };
00439
00440 template<class ContainerAllocator>
00441 struct Definition< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > {
00442 static const char* value()
00443 {
00444 return "\n\
00445 \n\
00446 sensor_msgs/PointCloud2 scan\n\
00447 \n\
00448 geometry_msgs/Point32[] missing_ray_directions\n\
00449 \n\
00450 \n\
00451 ================================================================================\n\
00452 MSG: sensor_msgs/PointCloud2\n\
00453 # This message holds a collection of N-dimensional points, which may\n\
00454 # contain additional information such as normals, intensity, etc. The\n\
00455 # point data is stored as a binary blob, its layout described by the\n\
00456 # contents of the \"fields\" array.\n\
00457 \n\
00458 # The point cloud data may be organized 2d (image-like) or 1d\n\
00459 # (unordered). Point clouds organized as 2d images may be produced by\n\
00460 # camera depth sensors such as stereo or time-of-flight.\n\
00461 \n\
00462 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
00463 # points).\n\
00464 Header header\n\
00465 \n\
00466 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
00467 # 1 and width is the length of the point cloud.\n\
00468 uint32 height\n\
00469 uint32 width\n\
00470 \n\
00471 # Describes the channels and their layout in the binary data blob.\n\
00472 PointField[] fields\n\
00473 \n\
00474 bool is_bigendian # Is this data bigendian?\n\
00475 uint32 point_step # Length of a point in bytes\n\
00476 uint32 row_step # Length of a row in bytes\n\
00477 uint8[] data # Actual point data, size is (row_step*height)\n\
00478 \n\
00479 bool is_dense # True if there are no invalid points\n\
00480 \n\
00481 ================================================================================\n\
00482 MSG: std_msgs/Header\n\
00483 # Standard metadata for higher-level stamped data types.\n\
00484 # This is generally used to communicate timestamped data \n\
00485 # in a particular coordinate frame.\n\
00486 # \n\
00487 # sequence ID: consecutively increasing ID \n\
00488 uint32 seq\n\
00489 #Two-integer timestamp that is expressed as:\n\
00490 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00491 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00492 # time-handling sugar is provided by the client library\n\
00493 time stamp\n\
00494 #Frame this data is associated with\n\
00495 # 0: no frame\n\
00496 # 1: global frame\n\
00497 string frame_id\n\
00498 \n\
00499 ================================================================================\n\
00500 MSG: sensor_msgs/PointField\n\
00501 # This message holds the description of one point entry in the\n\
00502 # PointCloud2 message format.\n\
00503 uint8 INT8 = 1\n\
00504 uint8 UINT8 = 2\n\
00505 uint8 INT16 = 3\n\
00506 uint8 UINT16 = 4\n\
00507 uint8 INT32 = 5\n\
00508 uint8 UINT32 = 6\n\
00509 uint8 FLOAT32 = 7\n\
00510 uint8 FLOAT64 = 8\n\
00511 \n\
00512 string name # Name of field\n\
00513 uint32 offset # Offset from start of point struct\n\
00514 uint8 datatype # Datatype enumeration, see above\n\
00515 uint32 count # How many elements in the field\n\
00516 \n\
00517 ================================================================================\n\
00518 MSG: geometry_msgs/Point32\n\
00519 # This contains the position of a point in free space(with 32 bits of precision).\n\
00520 # It is recommeded to use Point wherever possible instead of Point32. \n\
00521 # \n\
00522 # This recommendation is to promote interoperability. \n\
00523 #\n\
00524 # This message is designed to take up less space when sending\n\
00525 # lots of points at once, as in the case of a PointCloud. \n\
00526 \n\
00527 float32 x\n\
00528 float32 y\n\
00529 float32 z\n\
00530 ";
00531 }
00532
00533 static const char* value(const ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> &) { return value(); }
00534 };
00535
00536 }
00537 }
00538
00539 namespace ros
00540 {
00541 namespace serialization
00542 {
00543
00544 template<class ContainerAllocator> struct Serializer< ::graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> >
00545 {
00546 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00547 {
00548 stream.next(m.scanner_pose);
00549 stream.next(m.request_ray_directions);
00550 }
00551
00552 ROS_DECLARE_ALLINONE_SERIALIZER;
00553 };
00554 }
00555 }
00556
00557
00558 namespace ros
00559 {
00560 namespace serialization
00561 {
00562
00563 template<class ContainerAllocator> struct Serializer< ::graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> >
00564 {
00565 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00566 {
00567 stream.next(m.scan);
00568 stream.next(m.missing_ray_directions);
00569 }
00570
00571 ROS_DECLARE_ALLINONE_SERIALIZER;
00572 };
00573 }
00574 }
00575
00576 namespace ros
00577 {
00578 namespace service_traits
00579 {
00580 template<>
00581 struct MD5Sum<graspit_interface_msgs::SimulateScan> {
00582 static const char* value()
00583 {
00584 return "94771e8a60b9bcb2e1caf023bef79cb6";
00585 }
00586
00587 static const char* value(const graspit_interface_msgs::SimulateScan&) { return value(); }
00588 };
00589
00590 template<>
00591 struct DataType<graspit_interface_msgs::SimulateScan> {
00592 static const char* value()
00593 {
00594 return "graspit_interface_msgs/SimulateScan";
00595 }
00596
00597 static const char* value(const graspit_interface_msgs::SimulateScan&) { return value(); }
00598 };
00599
00600 template<class ContainerAllocator>
00601 struct MD5Sum<graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > {
00602 static const char* value()
00603 {
00604 return "94771e8a60b9bcb2e1caf023bef79cb6";
00605 }
00606
00607 static const char* value(const graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> &) { return value(); }
00608 };
00609
00610 template<class ContainerAllocator>
00611 struct DataType<graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> > {
00612 static const char* value()
00613 {
00614 return "graspit_interface_msgs/SimulateScan";
00615 }
00616
00617 static const char* value(const graspit_interface_msgs::SimulateScanRequest_<ContainerAllocator> &) { return value(); }
00618 };
00619
00620 template<class ContainerAllocator>
00621 struct MD5Sum<graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > {
00622 static const char* value()
00623 {
00624 return "94771e8a60b9bcb2e1caf023bef79cb6";
00625 }
00626
00627 static const char* value(const graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> &) { return value(); }
00628 };
00629
00630 template<class ContainerAllocator>
00631 struct DataType<graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> > {
00632 static const char* value()
00633 {
00634 return "graspit_interface_msgs/SimulateScan";
00635 }
00636
00637 static const char* value(const graspit_interface_msgs::SimulateScanResponse_<ContainerAllocator> &) { return value(); }
00638 };
00639
00640 }
00641 }
00642
00643 #endif // GRASPIT_INTERFACE_MSGS_SERVICE_SIMULATESCAN_H
00644