00001
00002 #ifndef GAZEBO_MSGS_MESSAGE_ODEPHYSICS_H
00003 #define GAZEBO_MSGS_MESSAGE_ODEPHYSICS_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 gazebo_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct ODEPhysics_ {
00022 typedef ODEPhysics_<ContainerAllocator> Type;
00023
00024 ODEPhysics_()
00025 : auto_disable_bodies(false)
00026 , sor_pgs_precon_iters(0)
00027 , sor_pgs_iters(0)
00028 , sor_pgs_w(0.0)
00029 , sor_pgs_rms_error_tol(0.0)
00030 , contact_surface_layer(0.0)
00031 , contact_max_correcting_vel(0.0)
00032 , cfm(0.0)
00033 , erp(0.0)
00034 , max_contacts(0)
00035 {
00036 }
00037
00038 ODEPhysics_(const ContainerAllocator& _alloc)
00039 : auto_disable_bodies(false)
00040 , sor_pgs_precon_iters(0)
00041 , sor_pgs_iters(0)
00042 , sor_pgs_w(0.0)
00043 , sor_pgs_rms_error_tol(0.0)
00044 , contact_surface_layer(0.0)
00045 , contact_max_correcting_vel(0.0)
00046 , cfm(0.0)
00047 , erp(0.0)
00048 , max_contacts(0)
00049 {
00050 }
00051
00052 typedef uint8_t _auto_disable_bodies_type;
00053 uint8_t auto_disable_bodies;
00054
00055 typedef uint32_t _sor_pgs_precon_iters_type;
00056 uint32_t sor_pgs_precon_iters;
00057
00058 typedef uint32_t _sor_pgs_iters_type;
00059 uint32_t sor_pgs_iters;
00060
00061 typedef double _sor_pgs_w_type;
00062 double sor_pgs_w;
00063
00064 typedef double _sor_pgs_rms_error_tol_type;
00065 double sor_pgs_rms_error_tol;
00066
00067 typedef double _contact_surface_layer_type;
00068 double contact_surface_layer;
00069
00070 typedef double _contact_max_correcting_vel_type;
00071 double contact_max_correcting_vel;
00072
00073 typedef double _cfm_type;
00074 double cfm;
00075
00076 typedef double _erp_type;
00077 double erp;
00078
00079 typedef uint32_t _max_contacts_type;
00080 uint32_t max_contacts;
00081
00082
00083 typedef boost::shared_ptr< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > Ptr;
00084 typedef boost::shared_ptr< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> const> ConstPtr;
00085 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00086 };
00087 typedef ::gazebo_msgs::ODEPhysics_<std::allocator<void> > ODEPhysics;
00088
00089 typedef boost::shared_ptr< ::gazebo_msgs::ODEPhysics> ODEPhysicsPtr;
00090 typedef boost::shared_ptr< ::gazebo_msgs::ODEPhysics const> ODEPhysicsConstPtr;
00091
00092
00093 template<typename ContainerAllocator>
00094 std::ostream& operator<<(std::ostream& s, const ::gazebo_msgs::ODEPhysics_<ContainerAllocator> & v)
00095 {
00096 ros::message_operations::Printer< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> >::stream(s, "", v);
00097 return s;}
00098
00099 }
00100
00101 namespace ros
00102 {
00103 namespace message_traits
00104 {
00105 template<class ContainerAllocator> struct IsMessage< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > : public TrueType {};
00106 template<class ContainerAllocator> struct IsMessage< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> const> : public TrueType {};
00107 template<class ContainerAllocator>
00108 struct MD5Sum< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > {
00109 static const char* value()
00110 {
00111 return "667d56ddbd547918c32d1934503dc335";
00112 }
00113
00114 static const char* value(const ::gazebo_msgs::ODEPhysics_<ContainerAllocator> &) { return value(); }
00115 static const uint64_t static_value1 = 0x667d56ddbd547918ULL;
00116 static const uint64_t static_value2 = 0xc32d1934503dc335ULL;
00117 };
00118
00119 template<class ContainerAllocator>
00120 struct DataType< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > {
00121 static const char* value()
00122 {
00123 return "gazebo_msgs/ODEPhysics";
00124 }
00125
00126 static const char* value(const ::gazebo_msgs::ODEPhysics_<ContainerAllocator> &) { return value(); }
00127 };
00128
00129 template<class ContainerAllocator>
00130 struct Definition< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > {
00131 static const char* value()
00132 {
00133 return "bool auto_disable_bodies # enable auto disabling of bodies, default false\n\
00134 uint32 sor_pgs_precon_iters # preconditioning inner iterations when uisng projected Gauss Seidel\n\
00135 uint32 sor_pgs_iters # inner iterations when uisng projected Gauss Seidel\n\
00136 float64 sor_pgs_w # relaxation parameter when using projected Gauss Seidel, 1 = no relaxation\n\
00137 float64 sor_pgs_rms_error_tol # rms error tolerance before stopping inner iterations\n\
00138 float64 contact_surface_layer # contact \"dead-band\" width\n\
00139 float64 contact_max_correcting_vel # contact maximum correction velocity\n\
00140 float64 cfm # global constraint force mixing\n\
00141 float64 erp # global error reduction parameter\n\
00142 uint32 max_contacts # maximum contact joints between two geoms\n\
00143 \n\
00144 ";
00145 }
00146
00147 static const char* value(const ::gazebo_msgs::ODEPhysics_<ContainerAllocator> &) { return value(); }
00148 };
00149
00150 template<class ContainerAllocator> struct IsFixedSize< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> > : public TrueType {};
00151 }
00152 }
00153
00154 namespace ros
00155 {
00156 namespace serialization
00157 {
00158
00159 template<class ContainerAllocator> struct Serializer< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> >
00160 {
00161 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00162 {
00163 stream.next(m.auto_disable_bodies);
00164 stream.next(m.sor_pgs_precon_iters);
00165 stream.next(m.sor_pgs_iters);
00166 stream.next(m.sor_pgs_w);
00167 stream.next(m.sor_pgs_rms_error_tol);
00168 stream.next(m.contact_surface_layer);
00169 stream.next(m.contact_max_correcting_vel);
00170 stream.next(m.cfm);
00171 stream.next(m.erp);
00172 stream.next(m.max_contacts);
00173 }
00174
00175 ROS_DECLARE_ALLINONE_SERIALIZER;
00176 };
00177 }
00178 }
00179
00180 namespace ros
00181 {
00182 namespace message_operations
00183 {
00184
00185 template<class ContainerAllocator>
00186 struct Printer< ::gazebo_msgs::ODEPhysics_<ContainerAllocator> >
00187 {
00188 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::gazebo_msgs::ODEPhysics_<ContainerAllocator> & v)
00189 {
00190 s << indent << "auto_disable_bodies: ";
00191 Printer<uint8_t>::stream(s, indent + " ", v.auto_disable_bodies);
00192 s << indent << "sor_pgs_precon_iters: ";
00193 Printer<uint32_t>::stream(s, indent + " ", v.sor_pgs_precon_iters);
00194 s << indent << "sor_pgs_iters: ";
00195 Printer<uint32_t>::stream(s, indent + " ", v.sor_pgs_iters);
00196 s << indent << "sor_pgs_w: ";
00197 Printer<double>::stream(s, indent + " ", v.sor_pgs_w);
00198 s << indent << "sor_pgs_rms_error_tol: ";
00199 Printer<double>::stream(s, indent + " ", v.sor_pgs_rms_error_tol);
00200 s << indent << "contact_surface_layer: ";
00201 Printer<double>::stream(s, indent + " ", v.contact_surface_layer);
00202 s << indent << "contact_max_correcting_vel: ";
00203 Printer<double>::stream(s, indent + " ", v.contact_max_correcting_vel);
00204 s << indent << "cfm: ";
00205 Printer<double>::stream(s, indent + " ", v.cfm);
00206 s << indent << "erp: ";
00207 Printer<double>::stream(s, indent + " ", v.erp);
00208 s << indent << "max_contacts: ";
00209 Printer<uint32_t>::stream(s, indent + " ", v.max_contacts);
00210 }
00211 };
00212
00213
00214 }
00215 }
00216
00217 #endif // GAZEBO_MSGS_MESSAGE_ODEPHYSICS_H
00218