21 #ifndef _PHYSICSENGINE_HH_
22 #define _PHYSICSENGINE_HH_
24 #include <boost/thread/recursive_mutex.hpp>
55 public:
virtual void Load(sdf::ElementPtr _sdf);
58 public:
virtual void Init() = 0;
61 public:
virtual void Fini();
67 public:
virtual void InitForThread() = 0;
70 public:
virtual void UpdateCollision() = 0;
74 public:
virtual std::string GetType()
const = 0;
78 public:
virtual void SetSeed(uint32_t _seed) = 0;
82 public:
double GetUpdatePeriod();
86 public:
double GetTargetRealTimeFactor()
const;
90 public:
double GetRealTimeUpdateRate()
const;
94 public:
double GetMaxStepSize()
const;
98 public:
void SetTargetRealTimeFactor(
double _factor);
102 public:
void SetRealTimeUpdateRate(
double _rate);
106 public:
void SetMaxStepSize(
double _stepSize);
123 const std::string &_shapeType,
LinkPtr _link) = 0;
128 public:
CollisionPtr CreateCollision(
const std::string &_shapeType,
129 const std::string &_linkName);
134 public:
virtual ShapePtr CreateShape(
const std::string &_shapeType,
140 public:
virtual JointPtr CreateJoint(
const std::string &_type,
149 public:
virtual void SetGravity(
156 public:
virtual void SetWorldCFM(
double _cfm);
162 public:
virtual void SetWorldERP(
double _erp);
168 public:
virtual void SetAutoDisableFlag(
bool _autoDisable);
174 public:
virtual void SetSORPGSPreconIters(
unsigned int _iters)
181 public:
virtual void SetSORPGSIters(
unsigned int _iters)
194 public:
virtual void SetContactMaxCorrectingVel(
double _vel);
200 public:
virtual void SetContactSurfaceLayer(
double _layerDepth);
206 public:
virtual void SetMaxContacts(
unsigned int _maxContacts);
297 public:
virtual bool SetParam(
const std::string &_key,
298 const boost::any &_value);
304 public:
virtual boost::any GetParam(
const std::string &_key)
const;
307 public:
virtual void DebugPrint()
const = 0;
316 {
return this->physicsUpdateMutex;}
320 protected:
virtual void OnRequest(ConstRequestPtr &_msg);
324 protected:
virtual void OnPhysicsMsg(ConstPhysicsPtr &_msg);
330 protected: sdf::ElementPtr
sdf;
virtual double GetWorldERP()
: Remove this function, and replace it with a more generic property map
Definition: PhysicsEngine.hh:218
boost::shared_ptr< Base > BasePtr
Definition: PhysicsTypes.hh:65
double realTimeUpdateRate
Real time update rate.
Definition: PhysicsEngine.hh:352
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:81
virtual double GetWorldCFM()
: Remove this function, and replace it with a more generic property map
Definition: PhysicsEngine.hh:212
virtual double GetSORPGSW() GAZEBO_DEPRECATED(3.0)
: Remove this function, and replace it with a more generic property map.
Definition: PhysicsEngine.hh:244
double targetRealTimeFactor
Target real time factor.
Definition: PhysicsEngine.hh:355
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:43
virtual void UpdatePhysics()
Update the physics engine.
Definition: PhysicsEngine.hh:109
boost::shared_ptr< Shape > ShapePtr
Definition: PhysicsTypes.hh:109
boost::shared_ptr< Subscriber > SubscriberPtr
Definition: TransportTypes.hh:48
Base class for a physics engine.
Definition: PhysicsEngine.hh:44
virtual bool GetAutoDisableFlag()
: Remove this function, and replace it with a more generic property map
Definition: PhysicsEngine.hh:224
Forward declarations for transport.
#define GAZEBO_DEPRECATED(version)
Definition: CommonTypes.hh:44
WorldPtr world
Pointer to the world.
Definition: PhysicsEngine.hh:327
sdf::ElementPtr sdf
Our SDF values.
Definition: PhysicsEngine.hh:330
boost::recursive_mutex * physicsUpdateMutex
Mutex to protect the update cycle.
Definition: PhysicsEngine.hh:345
default namespace for gazebo
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:93
transport::SubscriberPtr physicsSub
Subscribe to the physics topic.
Definition: PhysicsEngine.hh:339
virtual int GetSORPGSPreconIters() GAZEBO_DEPRECATED(3.0)
: Remove this function, and replace it with a more generic property map
Definition: PhysicsEngine.hh:230
virtual void Reset()
Rest the physics engine.
Definition: PhysicsEngine.hh:64
transport::SubscriberPtr requestSub
Subscribe to the request topic.
Definition: PhysicsEngine.hh:342
virtual double GetContactMaxCorrectingVel()
: Remove this function, and replace it with a more generic property map.
Definition: PhysicsEngine.hh:251
boost::shared_ptr< World > WorldPtr
Definition: PhysicsTypes.hh:77
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:97
boost::shared_ptr< Node > NodePtr
Definition: TransportTypes.hh:52
boost::recursive_mutex * GetPhysicsUpdateMutex() const
returns a pointer to the PhysicsEngine::physicsUpdateMutex.
Definition: PhysicsEngine.hh:315
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
virtual unsigned int GetMaxContacts()
: Remove this function, and replace it with a more generic property map.
Definition: PhysicsEngine.hh:263
virtual int GetSORPGSIters() GAZEBO_DEPRECATED(3.0)
: Remove this function, and replace it with a more generic property map
Definition: PhysicsEngine.hh:237
virtual double GetContactSurfaceLayer()
: Remove this function, and replace it with a more generic property map.
Definition: PhysicsEngine.hh:257
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:44
transport::PublisherPtr responsePub
Response publisher.
Definition: PhysicsEngine.hh:336
double maxStepSize
Real time update rate.
Definition: PhysicsEngine.hh:358
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:48
transport::NodePtr node
Node for communication.
Definition: PhysicsEngine.hh:333
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:89
ContactManager * contactManager
Class that handles all contacts generated by the physics engine.
Definition: PhysicsEngine.hh:349