$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-arm_navigation/doc_stacks/2013-03-01_14-05-03.553953/arm_navigation/arm_navigation_msgs/msg/AttachedCollisionObject.msg */ 00002 #ifndef ARM_NAVIGATION_MSGS_MESSAGE_ATTACHEDCOLLISIONOBJECT_H 00003 #define ARM_NAVIGATION_MSGS_MESSAGE_ATTACHEDCOLLISIONOBJECT_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 "arm_navigation_msgs/CollisionObject.h" 00018 00019 namespace arm_navigation_msgs 00020 { 00021 template <class ContainerAllocator> 00022 struct AttachedCollisionObject_ { 00023 typedef AttachedCollisionObject_<ContainerAllocator> Type; 00024 00025 AttachedCollisionObject_() 00026 : link_name() 00027 , object() 00028 , touch_links() 00029 { 00030 } 00031 00032 AttachedCollisionObject_(const ContainerAllocator& _alloc) 00033 : link_name(_alloc) 00034 , object(_alloc) 00035 , touch_links(_alloc) 00036 { 00037 } 00038 00039 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _link_name_type; 00040 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > link_name; 00041 00042 typedef ::arm_navigation_msgs::CollisionObject_<ContainerAllocator> _object_type; 00043 ::arm_navigation_msgs::CollisionObject_<ContainerAllocator> object; 00044 00045 typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _touch_links_type; 00046 std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > touch_links; 00047 00048 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > REMOVE_ALL_ATTACHED_OBJECTS; 00049 00050 ROS_DEPRECATED uint32_t get_touch_links_size() const { return (uint32_t)touch_links.size(); } 00051 ROS_DEPRECATED void set_touch_links_size(uint32_t size) { touch_links.resize((size_t)size); } 00052 ROS_DEPRECATED void get_touch_links_vec(std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > & vec) const { vec = this->touch_links; } 00053 ROS_DEPRECATED void set_touch_links_vec(const std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > & vec) { this->touch_links = vec; } 00054 private: 00055 static const char* __s_getDataType_() { return "arm_navigation_msgs/AttachedCollisionObject"; } 00056 public: 00057 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00058 00059 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00060 00061 private: 00062 static const char* __s_getMD5Sum_() { return "3fd8ca730863e3d97d109c317d106cf9"; } 00063 public: 00064 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00065 00066 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00067 00068 private: 00069 static const char* __s_getMessageDefinition_() { return "# The CollisionObject will be attached with a fixed joint to this link\n\ 00070 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\ 00071 # is set to REMOVE will remove all attached bodies attached to any object\n\ 00072 string link_name\n\ 00073 \n\ 00074 #Reserved for indicating that all attached objects should be removed\n\ 00075 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\ 00076 \n\ 00077 #This contains the actual shapes and poses for the CollisionObject\n\ 00078 #to be attached to the link\n\ 00079 #If action is remove and no object.id is set, all objects\n\ 00080 #attached to the link indicated by link_name will be removed\n\ 00081 CollisionObject object\n\ 00082 \n\ 00083 # The set of links that the attached objects are allowed to touch\n\ 00084 # by default - the link_name is included by default\n\ 00085 string[] touch_links\n\ 00086 \n\ 00087 ================================================================================\n\ 00088 MSG: arm_navigation_msgs/CollisionObject\n\ 00089 # a header, used for interpreting the poses\n\ 00090 Header header\n\ 00091 \n\ 00092 # the id of the object\n\ 00093 string id\n\ 00094 \n\ 00095 # The padding used for filtering points near the object.\n\ 00096 # This does not affect collision checking for the object. \n\ 00097 # Set to negative to get zero padding.\n\ 00098 float32 padding\n\ 00099 \n\ 00100 #This contains what is to be done with the object\n\ 00101 CollisionObjectOperation operation\n\ 00102 \n\ 00103 #the shapes associated with the object\n\ 00104 arm_navigation_msgs/Shape[] shapes\n\ 00105 \n\ 00106 #the poses associated with the shapes - will be transformed using the header\n\ 00107 geometry_msgs/Pose[] poses\n\ 00108 \n\ 00109 ================================================================================\n\ 00110 MSG: std_msgs/Header\n\ 00111 # Standard metadata for higher-level stamped data types.\n\ 00112 # This is generally used to communicate timestamped data \n\ 00113 # in a particular coordinate frame.\n\ 00114 # \n\ 00115 # sequence ID: consecutively increasing ID \n\ 00116 uint32 seq\n\ 00117 #Two-integer timestamp that is expressed as:\n\ 00118 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00119 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00120 # time-handling sugar is provided by the client library\n\ 00121 time stamp\n\ 00122 #Frame this data is associated with\n\ 00123 # 0: no frame\n\ 00124 # 1: global frame\n\ 00125 string frame_id\n\ 00126 \n\ 00127 ================================================================================\n\ 00128 MSG: arm_navigation_msgs/CollisionObjectOperation\n\ 00129 #Puts the object into the environment\n\ 00130 #or updates the object if already added\n\ 00131 byte ADD=0\n\ 00132 \n\ 00133 #Removes the object from the environment entirely\n\ 00134 byte REMOVE=1\n\ 00135 \n\ 00136 #Only valid within the context of a CollisionAttachedObject message\n\ 00137 #Will be ignored if sent with an CollisionObject message\n\ 00138 #Takes an attached object, detaches from the attached link\n\ 00139 #But adds back in as regular object\n\ 00140 byte DETACH_AND_ADD_AS_OBJECT=2\n\ 00141 \n\ 00142 #Only valid within the context of a CollisionAttachedObject message\n\ 00143 #Will be ignored if sent with an CollisionObject message\n\ 00144 #Takes current object in the environment and removes it as\n\ 00145 #a regular object\n\ 00146 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\ 00147 \n\ 00148 # Byte code for operation\n\ 00149 byte operation\n\ 00150 \n\ 00151 ================================================================================\n\ 00152 MSG: arm_navigation_msgs/Shape\n\ 00153 byte SPHERE=0\n\ 00154 byte BOX=1\n\ 00155 byte CYLINDER=2\n\ 00156 byte MESH=3\n\ 00157 \n\ 00158 byte type\n\ 00159 \n\ 00160 \n\ 00161 #### define sphere, box, cylinder ####\n\ 00162 # the origin of each shape is considered at the shape's center\n\ 00163 \n\ 00164 # for sphere\n\ 00165 # radius := dimensions[0]\n\ 00166 \n\ 00167 # for cylinder\n\ 00168 # radius := dimensions[0]\n\ 00169 # length := dimensions[1]\n\ 00170 # the length is along the Z axis\n\ 00171 \n\ 00172 # for box\n\ 00173 # size_x := dimensions[0]\n\ 00174 # size_y := dimensions[1]\n\ 00175 # size_z := dimensions[2]\n\ 00176 float64[] dimensions\n\ 00177 \n\ 00178 \n\ 00179 #### define mesh ####\n\ 00180 \n\ 00181 # list of triangles; triangle k is defined by tre vertices located\n\ 00182 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 00183 int32[] triangles\n\ 00184 geometry_msgs/Point[] vertices\n\ 00185 \n\ 00186 ================================================================================\n\ 00187 MSG: geometry_msgs/Point\n\ 00188 # This contains the position of a point in free space\n\ 00189 float64 x\n\ 00190 float64 y\n\ 00191 float64 z\n\ 00192 \n\ 00193 ================================================================================\n\ 00194 MSG: geometry_msgs/Pose\n\ 00195 # A representation of pose in free space, composed of postion and orientation. \n\ 00196 Point position\n\ 00197 Quaternion orientation\n\ 00198 \n\ 00199 ================================================================================\n\ 00200 MSG: geometry_msgs/Quaternion\n\ 00201 # This represents an orientation in free space in quaternion form.\n\ 00202 \n\ 00203 float64 x\n\ 00204 float64 y\n\ 00205 float64 z\n\ 00206 float64 w\n\ 00207 \n\ 00208 "; } 00209 public: 00210 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00211 00212 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00213 00214 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00215 { 00216 ros::serialization::OStream stream(write_ptr, 1000000000); 00217 ros::serialization::serialize(stream, link_name); 00218 ros::serialization::serialize(stream, object); 00219 ros::serialization::serialize(stream, touch_links); 00220 return stream.getData(); 00221 } 00222 00223 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00224 { 00225 ros::serialization::IStream stream(read_ptr, 1000000000); 00226 ros::serialization::deserialize(stream, link_name); 00227 ros::serialization::deserialize(stream, object); 00228 ros::serialization::deserialize(stream, touch_links); 00229 return stream.getData(); 00230 } 00231 00232 ROS_DEPRECATED virtual uint32_t serializationLength() const 00233 { 00234 uint32_t size = 0; 00235 size += ros::serialization::serializationLength(link_name); 00236 size += ros::serialization::serializationLength(object); 00237 size += ros::serialization::serializationLength(touch_links); 00238 return size; 00239 } 00240 00241 typedef boost::shared_ptr< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > Ptr; 00242 typedef boost::shared_ptr< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> const> ConstPtr; 00243 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00244 }; // struct AttachedCollisionObject 00245 typedef ::arm_navigation_msgs::AttachedCollisionObject_<std::allocator<void> > AttachedCollisionObject; 00246 00247 typedef boost::shared_ptr< ::arm_navigation_msgs::AttachedCollisionObject> AttachedCollisionObjectPtr; 00248 typedef boost::shared_ptr< ::arm_navigation_msgs::AttachedCollisionObject const> AttachedCollisionObjectConstPtr; 00249 00250 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > AttachedCollisionObject_<ContainerAllocator>::REMOVE_ALL_ATTACHED_OBJECTS = "\"all\""; 00251 00252 template<typename ContainerAllocator> 00253 std::ostream& operator<<(std::ostream& s, const ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> & v) 00254 { 00255 ros::message_operations::Printer< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> >::stream(s, "", v); 00256 return s;} 00257 00258 } // namespace arm_navigation_msgs 00259 00260 namespace ros 00261 { 00262 namespace message_traits 00263 { 00264 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > : public TrueType {}; 00265 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> const> : public TrueType {}; 00266 template<class ContainerAllocator> 00267 struct MD5Sum< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > { 00268 static const char* value() 00269 { 00270 return "3fd8ca730863e3d97d109c317d106cf9"; 00271 } 00272 00273 static const char* value(const ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> &) { return value(); } 00274 static const uint64_t static_value1 = 0x3fd8ca730863e3d9ULL; 00275 static const uint64_t static_value2 = 0x7d109c317d106cf9ULL; 00276 }; 00277 00278 template<class ContainerAllocator> 00279 struct DataType< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > { 00280 static const char* value() 00281 { 00282 return "arm_navigation_msgs/AttachedCollisionObject"; 00283 } 00284 00285 static const char* value(const ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> &) { return value(); } 00286 }; 00287 00288 template<class ContainerAllocator> 00289 struct Definition< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > { 00290 static const char* value() 00291 { 00292 return "# The CollisionObject will be attached with a fixed joint to this link\n\ 00293 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\ 00294 # is set to REMOVE will remove all attached bodies attached to any object\n\ 00295 string link_name\n\ 00296 \n\ 00297 #Reserved for indicating that all attached objects should be removed\n\ 00298 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\ 00299 \n\ 00300 #This contains the actual shapes and poses for the CollisionObject\n\ 00301 #to be attached to the link\n\ 00302 #If action is remove and no object.id is set, all objects\n\ 00303 #attached to the link indicated by link_name will be removed\n\ 00304 CollisionObject object\n\ 00305 \n\ 00306 # The set of links that the attached objects are allowed to touch\n\ 00307 # by default - the link_name is included by default\n\ 00308 string[] touch_links\n\ 00309 \n\ 00310 ================================================================================\n\ 00311 MSG: arm_navigation_msgs/CollisionObject\n\ 00312 # a header, used for interpreting the poses\n\ 00313 Header header\n\ 00314 \n\ 00315 # the id of the object\n\ 00316 string id\n\ 00317 \n\ 00318 # The padding used for filtering points near the object.\n\ 00319 # This does not affect collision checking for the object. \n\ 00320 # Set to negative to get zero padding.\n\ 00321 float32 padding\n\ 00322 \n\ 00323 #This contains what is to be done with the object\n\ 00324 CollisionObjectOperation operation\n\ 00325 \n\ 00326 #the shapes associated with the object\n\ 00327 arm_navigation_msgs/Shape[] shapes\n\ 00328 \n\ 00329 #the poses associated with the shapes - will be transformed using the header\n\ 00330 geometry_msgs/Pose[] poses\n\ 00331 \n\ 00332 ================================================================================\n\ 00333 MSG: std_msgs/Header\n\ 00334 # Standard metadata for higher-level stamped data types.\n\ 00335 # This is generally used to communicate timestamped data \n\ 00336 # in a particular coordinate frame.\n\ 00337 # \n\ 00338 # sequence ID: consecutively increasing ID \n\ 00339 uint32 seq\n\ 00340 #Two-integer timestamp that is expressed as:\n\ 00341 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00342 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00343 # time-handling sugar is provided by the client library\n\ 00344 time stamp\n\ 00345 #Frame this data is associated with\n\ 00346 # 0: no frame\n\ 00347 # 1: global frame\n\ 00348 string frame_id\n\ 00349 \n\ 00350 ================================================================================\n\ 00351 MSG: arm_navigation_msgs/CollisionObjectOperation\n\ 00352 #Puts the object into the environment\n\ 00353 #or updates the object if already added\n\ 00354 byte ADD=0\n\ 00355 \n\ 00356 #Removes the object from the environment entirely\n\ 00357 byte REMOVE=1\n\ 00358 \n\ 00359 #Only valid within the context of a CollisionAttachedObject message\n\ 00360 #Will be ignored if sent with an CollisionObject message\n\ 00361 #Takes an attached object, detaches from the attached link\n\ 00362 #But adds back in as regular object\n\ 00363 byte DETACH_AND_ADD_AS_OBJECT=2\n\ 00364 \n\ 00365 #Only valid within the context of a CollisionAttachedObject message\n\ 00366 #Will be ignored if sent with an CollisionObject message\n\ 00367 #Takes current object in the environment and removes it as\n\ 00368 #a regular object\n\ 00369 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\ 00370 \n\ 00371 # Byte code for operation\n\ 00372 byte operation\n\ 00373 \n\ 00374 ================================================================================\n\ 00375 MSG: arm_navigation_msgs/Shape\n\ 00376 byte SPHERE=0\n\ 00377 byte BOX=1\n\ 00378 byte CYLINDER=2\n\ 00379 byte MESH=3\n\ 00380 \n\ 00381 byte type\n\ 00382 \n\ 00383 \n\ 00384 #### define sphere, box, cylinder ####\n\ 00385 # the origin of each shape is considered at the shape's center\n\ 00386 \n\ 00387 # for sphere\n\ 00388 # radius := dimensions[0]\n\ 00389 \n\ 00390 # for cylinder\n\ 00391 # radius := dimensions[0]\n\ 00392 # length := dimensions[1]\n\ 00393 # the length is along the Z axis\n\ 00394 \n\ 00395 # for box\n\ 00396 # size_x := dimensions[0]\n\ 00397 # size_y := dimensions[1]\n\ 00398 # size_z := dimensions[2]\n\ 00399 float64[] dimensions\n\ 00400 \n\ 00401 \n\ 00402 #### define mesh ####\n\ 00403 \n\ 00404 # list of triangles; triangle k is defined by tre vertices located\n\ 00405 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 00406 int32[] triangles\n\ 00407 geometry_msgs/Point[] vertices\n\ 00408 \n\ 00409 ================================================================================\n\ 00410 MSG: geometry_msgs/Point\n\ 00411 # This contains the position of a point in free space\n\ 00412 float64 x\n\ 00413 float64 y\n\ 00414 float64 z\n\ 00415 \n\ 00416 ================================================================================\n\ 00417 MSG: geometry_msgs/Pose\n\ 00418 # A representation of pose in free space, composed of postion and orientation. \n\ 00419 Point position\n\ 00420 Quaternion orientation\n\ 00421 \n\ 00422 ================================================================================\n\ 00423 MSG: geometry_msgs/Quaternion\n\ 00424 # This represents an orientation in free space in quaternion form.\n\ 00425 \n\ 00426 float64 x\n\ 00427 float64 y\n\ 00428 float64 z\n\ 00429 float64 w\n\ 00430 \n\ 00431 "; 00432 } 00433 00434 static const char* value(const ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> &) { return value(); } 00435 }; 00436 00437 } // namespace message_traits 00438 } // namespace ros 00439 00440 namespace ros 00441 { 00442 namespace serialization 00443 { 00444 00445 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > 00446 { 00447 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00448 { 00449 stream.next(m.link_name); 00450 stream.next(m.object); 00451 stream.next(m.touch_links); 00452 } 00453 00454 ROS_DECLARE_ALLINONE_SERIALIZER; 00455 }; // struct AttachedCollisionObject_ 00456 } // namespace serialization 00457 } // namespace ros 00458 00459 namespace ros 00460 { 00461 namespace message_operations 00462 { 00463 00464 template<class ContainerAllocator> 00465 struct Printer< ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> > 00466 { 00467 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::arm_navigation_msgs::AttachedCollisionObject_<ContainerAllocator> & v) 00468 { 00469 s << indent << "link_name: "; 00470 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.link_name); 00471 s << indent << "object: "; 00472 s << std::endl; 00473 Printer< ::arm_navigation_msgs::CollisionObject_<ContainerAllocator> >::stream(s, indent + " ", v.object); 00474 s << indent << "touch_links[]" << std::endl; 00475 for (size_t i = 0; i < v.touch_links.size(); ++i) 00476 { 00477 s << indent << " touch_links[" << i << "]: "; 00478 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.touch_links[i]); 00479 } 00480 } 00481 }; 00482 00483 00484 } // namespace message_operations 00485 } // namespace ros 00486 00487 #endif // ARM_NAVIGATION_MSGS_MESSAGE_ATTACHEDCOLLISIONOBJECT_H 00488