$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-object_manipulation/doc_stacks/2013-03-01_16-13-18.345538/object_manipulation/object_manipulation_msgs/msg/FindContainerResult.msg */ 00002 #ifndef OBJECT_MANIPULATION_MSGS_MESSAGE_FINDCONTAINERRESULT_H 00003 #define OBJECT_MANIPULATION_MSGS_MESSAGE_FINDCONTAINERRESULT_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 "geometry_msgs/PoseStamped.h" 00018 #include "geometry_msgs/Vector3.h" 00019 #include "sensor_msgs/PointCloud2.h" 00020 #include "sensor_msgs/PointCloud2.h" 00021 #include "sensor_msgs/PointCloud2.h" 00022 00023 namespace object_manipulation_msgs 00024 { 00025 template <class ContainerAllocator> 00026 struct FindContainerResult_ { 00027 typedef FindContainerResult_<ContainerAllocator> Type; 00028 00029 FindContainerResult_() 00030 : box_pose() 00031 , box_dims() 00032 , contents() 00033 , container() 00034 , clusters() 00035 { 00036 } 00037 00038 FindContainerResult_(const ContainerAllocator& _alloc) 00039 : box_pose(_alloc) 00040 , box_dims(_alloc) 00041 , contents(_alloc) 00042 , container(_alloc) 00043 , clusters(_alloc) 00044 { 00045 } 00046 00047 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _box_pose_type; 00048 ::geometry_msgs::PoseStamped_<ContainerAllocator> box_pose; 00049 00050 typedef ::geometry_msgs::Vector3_<ContainerAllocator> _box_dims_type; 00051 ::geometry_msgs::Vector3_<ContainerAllocator> box_dims; 00052 00053 typedef ::sensor_msgs::PointCloud2_<ContainerAllocator> _contents_type; 00054 ::sensor_msgs::PointCloud2_<ContainerAllocator> contents; 00055 00056 typedef ::sensor_msgs::PointCloud2_<ContainerAllocator> _container_type; 00057 ::sensor_msgs::PointCloud2_<ContainerAllocator> container; 00058 00059 typedef std::vector< ::sensor_msgs::PointCloud2_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::other > _clusters_type; 00060 std::vector< ::sensor_msgs::PointCloud2_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::other > clusters; 00061 00062 00063 ROS_DEPRECATED uint32_t get_clusters_size() const { return (uint32_t)clusters.size(); } 00064 ROS_DEPRECATED void set_clusters_size(uint32_t size) { clusters.resize((size_t)size); } 00065 ROS_DEPRECATED void get_clusters_vec(std::vector< ::sensor_msgs::PointCloud2_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::other > & vec) const { vec = this->clusters; } 00066 ROS_DEPRECATED void set_clusters_vec(const std::vector< ::sensor_msgs::PointCloud2_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::other > & vec) { this->clusters = vec; } 00067 private: 00068 static const char* __s_getDataType_() { return "object_manipulation_msgs/FindContainerResult"; } 00069 public: 00070 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00071 00072 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00073 00074 private: 00075 static const char* __s_getMD5Sum_() { return "9f205f80410192b4ceee2889befe1096"; } 00076 public: 00077 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00078 00079 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00080 00081 private: 00082 static const char* __s_getMessageDefinition_() { return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00083 # refined pose and dimensions of bounding box for container\n\ 00084 geometry_msgs/PoseStamped box_pose\n\ 00085 geometry_msgs/Vector3 box_dims\n\ 00086 \n\ 00087 # cloud chunks of stuff in container, and container\n\ 00088 sensor_msgs/PointCloud2 contents\n\ 00089 sensor_msgs/PointCloud2 container\n\ 00090 sensor_msgs/PointCloud2[] clusters\n\ 00091 \n\ 00092 \n\ 00093 ================================================================================\n\ 00094 MSG: geometry_msgs/PoseStamped\n\ 00095 # A Pose with reference coordinate frame and timestamp\n\ 00096 Header header\n\ 00097 Pose pose\n\ 00098 \n\ 00099 ================================================================================\n\ 00100 MSG: std_msgs/Header\n\ 00101 # Standard metadata for higher-level stamped data types.\n\ 00102 # This is generally used to communicate timestamped data \n\ 00103 # in a particular coordinate frame.\n\ 00104 # \n\ 00105 # sequence ID: consecutively increasing ID \n\ 00106 uint32 seq\n\ 00107 #Two-integer timestamp that is expressed as:\n\ 00108 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00109 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00110 # time-handling sugar is provided by the client library\n\ 00111 time stamp\n\ 00112 #Frame this data is associated with\n\ 00113 # 0: no frame\n\ 00114 # 1: global frame\n\ 00115 string frame_id\n\ 00116 \n\ 00117 ================================================================================\n\ 00118 MSG: geometry_msgs/Pose\n\ 00119 # A representation of pose in free space, composed of postion and orientation. \n\ 00120 Point position\n\ 00121 Quaternion orientation\n\ 00122 \n\ 00123 ================================================================================\n\ 00124 MSG: geometry_msgs/Point\n\ 00125 # This contains the position of a point in free space\n\ 00126 float64 x\n\ 00127 float64 y\n\ 00128 float64 z\n\ 00129 \n\ 00130 ================================================================================\n\ 00131 MSG: geometry_msgs/Quaternion\n\ 00132 # This represents an orientation in free space in quaternion form.\n\ 00133 \n\ 00134 float64 x\n\ 00135 float64 y\n\ 00136 float64 z\n\ 00137 float64 w\n\ 00138 \n\ 00139 ================================================================================\n\ 00140 MSG: geometry_msgs/Vector3\n\ 00141 # This represents a vector in free space. \n\ 00142 \n\ 00143 float64 x\n\ 00144 float64 y\n\ 00145 float64 z\n\ 00146 ================================================================================\n\ 00147 MSG: sensor_msgs/PointCloud2\n\ 00148 # This message holds a collection of N-dimensional points, which may\n\ 00149 # contain additional information such as normals, intensity, etc. The\n\ 00150 # point data is stored as a binary blob, its layout described by the\n\ 00151 # contents of the \"fields\" array.\n\ 00152 \n\ 00153 # The point cloud data may be organized 2d (image-like) or 1d\n\ 00154 # (unordered). Point clouds organized as 2d images may be produced by\n\ 00155 # camera depth sensors such as stereo or time-of-flight.\n\ 00156 \n\ 00157 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\ 00158 # points).\n\ 00159 Header header\n\ 00160 \n\ 00161 # 2D structure of the point cloud. If the cloud is unordered, height is\n\ 00162 # 1 and width is the length of the point cloud.\n\ 00163 uint32 height\n\ 00164 uint32 width\n\ 00165 \n\ 00166 # Describes the channels and their layout in the binary data blob.\n\ 00167 PointField[] fields\n\ 00168 \n\ 00169 bool is_bigendian # Is this data bigendian?\n\ 00170 uint32 point_step # Length of a point in bytes\n\ 00171 uint32 row_step # Length of a row in bytes\n\ 00172 uint8[] data # Actual point data, size is (row_step*height)\n\ 00173 \n\ 00174 bool is_dense # True if there are no invalid points\n\ 00175 \n\ 00176 ================================================================================\n\ 00177 MSG: sensor_msgs/PointField\n\ 00178 # This message holds the description of one point entry in the\n\ 00179 # PointCloud2 message format.\n\ 00180 uint8 INT8 = 1\n\ 00181 uint8 UINT8 = 2\n\ 00182 uint8 INT16 = 3\n\ 00183 uint8 UINT16 = 4\n\ 00184 uint8 INT32 = 5\n\ 00185 uint8 UINT32 = 6\n\ 00186 uint8 FLOAT32 = 7\n\ 00187 uint8 FLOAT64 = 8\n\ 00188 \n\ 00189 string name # Name of field\n\ 00190 uint32 offset # Offset from start of point struct\n\ 00191 uint8 datatype # Datatype enumeration, see above\n\ 00192 uint32 count # How many elements in the field\n\ 00193 \n\ 00194 "; } 00195 public: 00196 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00197 00198 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00199 00200 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00201 { 00202 ros::serialization::OStream stream(write_ptr, 1000000000); 00203 ros::serialization::serialize(stream, box_pose); 00204 ros::serialization::serialize(stream, box_dims); 00205 ros::serialization::serialize(stream, contents); 00206 ros::serialization::serialize(stream, container); 00207 ros::serialization::serialize(stream, clusters); 00208 return stream.getData(); 00209 } 00210 00211 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00212 { 00213 ros::serialization::IStream stream(read_ptr, 1000000000); 00214 ros::serialization::deserialize(stream, box_pose); 00215 ros::serialization::deserialize(stream, box_dims); 00216 ros::serialization::deserialize(stream, contents); 00217 ros::serialization::deserialize(stream, container); 00218 ros::serialization::deserialize(stream, clusters); 00219 return stream.getData(); 00220 } 00221 00222 ROS_DEPRECATED virtual uint32_t serializationLength() const 00223 { 00224 uint32_t size = 0; 00225 size += ros::serialization::serializationLength(box_pose); 00226 size += ros::serialization::serializationLength(box_dims); 00227 size += ros::serialization::serializationLength(contents); 00228 size += ros::serialization::serializationLength(container); 00229 size += ros::serialization::serializationLength(clusters); 00230 return size; 00231 } 00232 00233 typedef boost::shared_ptr< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > Ptr; 00234 typedef boost::shared_ptr< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> const> ConstPtr; 00235 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00236 }; // struct FindContainerResult 00237 typedef ::object_manipulation_msgs::FindContainerResult_<std::allocator<void> > FindContainerResult; 00238 00239 typedef boost::shared_ptr< ::object_manipulation_msgs::FindContainerResult> FindContainerResultPtr; 00240 typedef boost::shared_ptr< ::object_manipulation_msgs::FindContainerResult const> FindContainerResultConstPtr; 00241 00242 00243 template<typename ContainerAllocator> 00244 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> & v) 00245 { 00246 ros::message_operations::Printer< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> >::stream(s, "", v); 00247 return s;} 00248 00249 } // namespace object_manipulation_msgs 00250 00251 namespace ros 00252 { 00253 namespace message_traits 00254 { 00255 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > : public TrueType {}; 00256 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> const> : public TrueType {}; 00257 template<class ContainerAllocator> 00258 struct MD5Sum< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > { 00259 static const char* value() 00260 { 00261 return "9f205f80410192b4ceee2889befe1096"; 00262 } 00263 00264 static const char* value(const ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> &) { return value(); } 00265 static const uint64_t static_value1 = 0x9f205f80410192b4ULL; 00266 static const uint64_t static_value2 = 0xceee2889befe1096ULL; 00267 }; 00268 00269 template<class ContainerAllocator> 00270 struct DataType< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > { 00271 static const char* value() 00272 { 00273 return "object_manipulation_msgs/FindContainerResult"; 00274 } 00275 00276 static const char* value(const ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> &) { return value(); } 00277 }; 00278 00279 template<class ContainerAllocator> 00280 struct Definition< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > { 00281 static const char* value() 00282 { 00283 return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00284 # refined pose and dimensions of bounding box for container\n\ 00285 geometry_msgs/PoseStamped box_pose\n\ 00286 geometry_msgs/Vector3 box_dims\n\ 00287 \n\ 00288 # cloud chunks of stuff in container, and container\n\ 00289 sensor_msgs/PointCloud2 contents\n\ 00290 sensor_msgs/PointCloud2 container\n\ 00291 sensor_msgs/PointCloud2[] clusters\n\ 00292 \n\ 00293 \n\ 00294 ================================================================================\n\ 00295 MSG: geometry_msgs/PoseStamped\n\ 00296 # A Pose with reference coordinate frame and timestamp\n\ 00297 Header header\n\ 00298 Pose pose\n\ 00299 \n\ 00300 ================================================================================\n\ 00301 MSG: std_msgs/Header\n\ 00302 # Standard metadata for higher-level stamped data types.\n\ 00303 # This is generally used to communicate timestamped data \n\ 00304 # in a particular coordinate frame.\n\ 00305 # \n\ 00306 # sequence ID: consecutively increasing ID \n\ 00307 uint32 seq\n\ 00308 #Two-integer timestamp that is expressed as:\n\ 00309 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00310 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00311 # time-handling sugar is provided by the client library\n\ 00312 time stamp\n\ 00313 #Frame this data is associated with\n\ 00314 # 0: no frame\n\ 00315 # 1: global frame\n\ 00316 string frame_id\n\ 00317 \n\ 00318 ================================================================================\n\ 00319 MSG: geometry_msgs/Pose\n\ 00320 # A representation of pose in free space, composed of postion and orientation. \n\ 00321 Point position\n\ 00322 Quaternion orientation\n\ 00323 \n\ 00324 ================================================================================\n\ 00325 MSG: geometry_msgs/Point\n\ 00326 # This contains the position of a point in free space\n\ 00327 float64 x\n\ 00328 float64 y\n\ 00329 float64 z\n\ 00330 \n\ 00331 ================================================================================\n\ 00332 MSG: geometry_msgs/Quaternion\n\ 00333 # This represents an orientation in free space in quaternion form.\n\ 00334 \n\ 00335 float64 x\n\ 00336 float64 y\n\ 00337 float64 z\n\ 00338 float64 w\n\ 00339 \n\ 00340 ================================================================================\n\ 00341 MSG: geometry_msgs/Vector3\n\ 00342 # This represents a vector in free space. \n\ 00343 \n\ 00344 float64 x\n\ 00345 float64 y\n\ 00346 float64 z\n\ 00347 ================================================================================\n\ 00348 MSG: sensor_msgs/PointCloud2\n\ 00349 # This message holds a collection of N-dimensional points, which may\n\ 00350 # contain additional information such as normals, intensity, etc. The\n\ 00351 # point data is stored as a binary blob, its layout described by the\n\ 00352 # contents of the \"fields\" array.\n\ 00353 \n\ 00354 # The point cloud data may be organized 2d (image-like) or 1d\n\ 00355 # (unordered). Point clouds organized as 2d images may be produced by\n\ 00356 # camera depth sensors such as stereo or time-of-flight.\n\ 00357 \n\ 00358 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\ 00359 # points).\n\ 00360 Header header\n\ 00361 \n\ 00362 # 2D structure of the point cloud. If the cloud is unordered, height is\n\ 00363 # 1 and width is the length of the point cloud.\n\ 00364 uint32 height\n\ 00365 uint32 width\n\ 00366 \n\ 00367 # Describes the channels and their layout in the binary data blob.\n\ 00368 PointField[] fields\n\ 00369 \n\ 00370 bool is_bigendian # Is this data bigendian?\n\ 00371 uint32 point_step # Length of a point in bytes\n\ 00372 uint32 row_step # Length of a row in bytes\n\ 00373 uint8[] data # Actual point data, size is (row_step*height)\n\ 00374 \n\ 00375 bool is_dense # True if there are no invalid points\n\ 00376 \n\ 00377 ================================================================================\n\ 00378 MSG: sensor_msgs/PointField\n\ 00379 # This message holds the description of one point entry in the\n\ 00380 # PointCloud2 message format.\n\ 00381 uint8 INT8 = 1\n\ 00382 uint8 UINT8 = 2\n\ 00383 uint8 INT16 = 3\n\ 00384 uint8 UINT16 = 4\n\ 00385 uint8 INT32 = 5\n\ 00386 uint8 UINT32 = 6\n\ 00387 uint8 FLOAT32 = 7\n\ 00388 uint8 FLOAT64 = 8\n\ 00389 \n\ 00390 string name # Name of field\n\ 00391 uint32 offset # Offset from start of point struct\n\ 00392 uint8 datatype # Datatype enumeration, see above\n\ 00393 uint32 count # How many elements in the field\n\ 00394 \n\ 00395 "; 00396 } 00397 00398 static const char* value(const ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> &) { return value(); } 00399 }; 00400 00401 } // namespace message_traits 00402 } // namespace ros 00403 00404 namespace ros 00405 { 00406 namespace serialization 00407 { 00408 00409 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > 00410 { 00411 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00412 { 00413 stream.next(m.box_pose); 00414 stream.next(m.box_dims); 00415 stream.next(m.contents); 00416 stream.next(m.container); 00417 stream.next(m.clusters); 00418 } 00419 00420 ROS_DECLARE_ALLINONE_SERIALIZER; 00421 }; // struct FindContainerResult_ 00422 } // namespace serialization 00423 } // namespace ros 00424 00425 namespace ros 00426 { 00427 namespace message_operations 00428 { 00429 00430 template<class ContainerAllocator> 00431 struct Printer< ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> > 00432 { 00433 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::FindContainerResult_<ContainerAllocator> & v) 00434 { 00435 s << indent << "box_pose: "; 00436 s << std::endl; 00437 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.box_pose); 00438 s << indent << "box_dims: "; 00439 s << std::endl; 00440 Printer< ::geometry_msgs::Vector3_<ContainerAllocator> >::stream(s, indent + " ", v.box_dims); 00441 s << indent << "contents: "; 00442 s << std::endl; 00443 Printer< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::stream(s, indent + " ", v.contents); 00444 s << indent << "container: "; 00445 s << std::endl; 00446 Printer< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::stream(s, indent + " ", v.container); 00447 s << indent << "clusters[]" << std::endl; 00448 for (size_t i = 0; i < v.clusters.size(); ++i) 00449 { 00450 s << indent << " clusters[" << i << "]: "; 00451 s << std::endl; 00452 s << indent; 00453 Printer< ::sensor_msgs::PointCloud2_<ContainerAllocator> >::stream(s, indent + " ", v.clusters[i]); 00454 } 00455 } 00456 }; 00457 00458 00459 } // namespace message_operations 00460 } // namespace ros 00461 00462 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_FINDCONTAINERRESULT_H 00463