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