00001
00002 #ifndef ARM_NAVIGATION_MSGS_MESSAGE_COLLISIONOPERATION_H
00003 #define ARM_NAVIGATION_MSGS_MESSAGE_COLLISIONOPERATION_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
00018 namespace arm_navigation_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct CollisionOperation_ {
00022 typedef CollisionOperation_<ContainerAllocator> Type;
00023
00024 CollisionOperation_()
00025 : object1()
00026 , object2()
00027 , penetration_distance(0.0)
00028 , operation(0)
00029 {
00030 }
00031
00032 CollisionOperation_(const ContainerAllocator& _alloc)
00033 : object1(_alloc)
00034 , object2(_alloc)
00035 , penetration_distance(0.0)
00036 , operation(0)
00037 {
00038 }
00039
00040 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _object1_type;
00041 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > object1;
00042
00043 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _object2_type;
00044 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > object2;
00045
00046 typedef double _penetration_distance_type;
00047 double penetration_distance;
00048
00049 typedef int32_t _operation_type;
00050 int32_t operation;
00051
00052 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > COLLISION_SET_ALL;
00053 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > COLLISION_SET_OBJECTS;
00054 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > COLLISION_SET_ATTACHED_OBJECTS;
00055 enum { DISABLE = 0 };
00056 enum { ENABLE = 1 };
00057
00058 private:
00059 static const char* __s_getDataType_() { return "arm_navigation_msgs/CollisionOperation"; }
00060 public:
00061 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00062
00063 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00064
00065 private:
00066 static const char* __s_getMD5Sum_() { return "e0cf3073b26bd86266c918a0c779f8a2"; }
00067 public:
00068 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00069
00070 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00071
00072 private:
00073 static const char* __s_getMessageDefinition_() { return "# A definition of a collision operation\n\
00074 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00075 # between the gripper and all objects in the collision space\n\
00076 \n\
00077 string object1\n\
00078 string object2\n\
00079 string COLLISION_SET_ALL=\"all\"\n\
00080 string COLLISION_SET_OBJECTS=\"objects\"\n\
00081 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00082 \n\
00083 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00084 float64 penetration_distance\n\
00085 \n\
00086 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00087 int32 operation\n\
00088 int32 DISABLE=0\n\
00089 int32 ENABLE=1\n\
00090 \n\
00091 "; }
00092 public:
00093 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00094
00095 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00096
00097 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00098 {
00099 ros::serialization::OStream stream(write_ptr, 1000000000);
00100 ros::serialization::serialize(stream, object1);
00101 ros::serialization::serialize(stream, object2);
00102 ros::serialization::serialize(stream, penetration_distance);
00103 ros::serialization::serialize(stream, operation);
00104 return stream.getData();
00105 }
00106
00107 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00108 {
00109 ros::serialization::IStream stream(read_ptr, 1000000000);
00110 ros::serialization::deserialize(stream, object1);
00111 ros::serialization::deserialize(stream, object2);
00112 ros::serialization::deserialize(stream, penetration_distance);
00113 ros::serialization::deserialize(stream, operation);
00114 return stream.getData();
00115 }
00116
00117 ROS_DEPRECATED virtual uint32_t serializationLength() const
00118 {
00119 uint32_t size = 0;
00120 size += ros::serialization::serializationLength(object1);
00121 size += ros::serialization::serializationLength(object2);
00122 size += ros::serialization::serializationLength(penetration_distance);
00123 size += ros::serialization::serializationLength(operation);
00124 return size;
00125 }
00126
00127 typedef boost::shared_ptr< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> > Ptr;
00128 typedef boost::shared_ptr< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> const> ConstPtr;
00129 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00130 };
00131 typedef ::arm_navigation_msgs::CollisionOperation_<std::allocator<void> > CollisionOperation;
00132
00133 typedef boost::shared_ptr< ::arm_navigation_msgs::CollisionOperation> CollisionOperationPtr;
00134 typedef boost::shared_ptr< ::arm_navigation_msgs::CollisionOperation const> CollisionOperationConstPtr;
00135
00136 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > CollisionOperation_<ContainerAllocator>::COLLISION_SET_ALL = "\"all\"";
00137 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > CollisionOperation_<ContainerAllocator>::COLLISION_SET_OBJECTS = "\"objects\"";
00138 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > CollisionOperation_<ContainerAllocator>::COLLISION_SET_ATTACHED_OBJECTS = "\"attached\"";
00139
00140 template<typename ContainerAllocator>
00141 std::ostream& operator<<(std::ostream& s, const ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> & v)
00142 {
00143 ros::message_operations::Printer< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> >::stream(s, "", v);
00144 return s;}
00145
00146 }
00147
00148 namespace ros
00149 {
00150 namespace message_traits
00151 {
00152 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> > : public TrueType {};
00153 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> const> : public TrueType {};
00154 template<class ContainerAllocator>
00155 struct MD5Sum< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> > {
00156 static const char* value()
00157 {
00158 return "e0cf3073b26bd86266c918a0c779f8a2";
00159 }
00160
00161 static const char* value(const ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> &) { return value(); }
00162 static const uint64_t static_value1 = 0xe0cf3073b26bd862ULL;
00163 static const uint64_t static_value2 = 0x66c918a0c779f8a2ULL;
00164 };
00165
00166 template<class ContainerAllocator>
00167 struct DataType< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> > {
00168 static const char* value()
00169 {
00170 return "arm_navigation_msgs/CollisionOperation";
00171 }
00172
00173 static const char* value(const ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> &) { return value(); }
00174 };
00175
00176 template<class ContainerAllocator>
00177 struct Definition< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> > {
00178 static const char* value()
00179 {
00180 return "# A definition of a collision operation\n\
00181 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00182 # between the gripper and all objects in the collision space\n\
00183 \n\
00184 string object1\n\
00185 string object2\n\
00186 string COLLISION_SET_ALL=\"all\"\n\
00187 string COLLISION_SET_OBJECTS=\"objects\"\n\
00188 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00189 \n\
00190 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00191 float64 penetration_distance\n\
00192 \n\
00193 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00194 int32 operation\n\
00195 int32 DISABLE=0\n\
00196 int32 ENABLE=1\n\
00197 \n\
00198 ";
00199 }
00200
00201 static const char* value(const ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> &) { return value(); }
00202 };
00203
00204 }
00205 }
00206
00207 namespace ros
00208 {
00209 namespace serialization
00210 {
00211
00212 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> >
00213 {
00214 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00215 {
00216 stream.next(m.object1);
00217 stream.next(m.object2);
00218 stream.next(m.penetration_distance);
00219 stream.next(m.operation);
00220 }
00221
00222 ROS_DECLARE_ALLINONE_SERIALIZER;
00223 };
00224 }
00225 }
00226
00227 namespace ros
00228 {
00229 namespace message_operations
00230 {
00231
00232 template<class ContainerAllocator>
00233 struct Printer< ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> >
00234 {
00235 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::arm_navigation_msgs::CollisionOperation_<ContainerAllocator> & v)
00236 {
00237 s << indent << "object1: ";
00238 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.object1);
00239 s << indent << "object2: ";
00240 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.object2);
00241 s << indent << "penetration_distance: ";
00242 Printer<double>::stream(s, indent + " ", v.penetration_distance);
00243 s << indent << "operation: ";
00244 Printer<int32_t>::stream(s, indent + " ", v.operation);
00245 }
00246 };
00247
00248
00249 }
00250 }
00251
00252 #endif // ARM_NAVIGATION_MSGS_MESSAGE_COLLISIONOPERATION_H
00253