Go to the documentation of this file.
22 #ifndef BULLETPHYSICS_HH
23 #define BULLETPHYSICS_HH
26 #include <boost/thread/thread.hpp>
27 #include <boost/thread/mutex.hpp>
87 public:
virtual void Load(sdf::ElementPtr _sdf);
90 public:
virtual void Init();
130 protected:
virtual void OnRequest(ConstRequestPtr &_msg);
144 public:
virtual void SetGravity(
const ignition::math::Vector3d &_gravity);
157 {
return this->dynamicsWorld;}
162 public:
virtual bool SetParam(
const std::string &_key,
163 const boost::any &_value);
166 public:
virtual boost::any
GetParam(
const std::string &_key)
const;
169 public:
virtual bool GetParam(
const std::string &_key,
170 boost::any &_value)
const;
175 private: btBroadphaseInterface *broadPhase;
176 private: btDefaultCollisionConfiguration *collisionConfig;
177 private: btCollisionDispatcher *dispatcher;
178 private: btSequentialImpulseConstraintSolver *solver;
179 private: btDiscreteDynamicsWorld *dynamicsWorld;
184 private: std::string solverType;
virtual void UpdatePhysics()
Update the physics engine.
virtual ShapePtr CreateShape(const std::string &_shapeType, CollisionPtr _collision)
Create a physics::Shape object.
virtual LinkPtr CreateLink(ModelPtr _parent)
Create a new body.
virtual void OnPhysicsMsg(ConstPhysicsPtr &_msg)
virtual callback for gztopic "~/physics".
@ SOR
SOR over-relaxation parameter.
Definition: BulletPhysics.hh:68
virtual void SetSORPGSIters(unsigned int iters)
Base class for a physics engine.
Definition: PhysicsEngine.hh:43
virtual void DebugPrint() const
Debug print out of the physic engine state.
Forward declarations for the common classes.
Definition: Animation.hh:27
@ PGS_ITERS
Number of iterations.
Definition: BulletPhysics.hh:65
A Time class, can be used to hold wall- or sim-time. stored as sec and nano-sec.
Definition: Time.hh:48
Bullet physics engine.
Definition: BulletPhysics.hh:50
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:94
virtual void UpdateCollision()
Update the physics engine collision.
BulletParam
Bullet physics parameter types.
Definition: BulletPhysics.hh:54
virtual boost::any GetParam(const std::string &_key) const
Documentation inherited.
virtual void Fini()
Finilize the physics engine.
virtual void ConvertMass(InertialPtr _inertial, void *_engineMass)
Convert a bullet mass to a gazebo Mass.
virtual JointPtr CreateJoint(const std::string &_type, ModelPtr _parent)
Create a new joint.
virtual bool SetParam(const std::string &_key, const boost::any &_value)
Documentation inherited.
virtual void Init()
Initialize the physics engine.
BulletPhysics(WorldPtr _world)
Constructor.
virtual void InitForThread()
Init the engine for threads.
virtual void SetWorldCFM(double _cfm)
virtual void OnRequest(ConstRequestPtr &_msg)
Create a physics based ray sensor.
virtual bool GetParam(const std::string &_key, boost::any &_value) const
Documentation inherited.
virtual CollisionPtr CreateCollision(const std::string &_type, LinkPtr _body)
Create a collision.
virtual void Load(sdf::ElementPtr _sdf)
Load the physics engine.
virtual void SetSeed(uint32_t _seed)
Set the random number seed for the physics engine.
boost::shared_ptr< Shape > ShapePtr
Definition: PhysicsTypes.hh:142
virtual std::string GetType() const
Return the physics engine type (ode|bullet|dart|simbody).
Definition: BulletPhysics.hh:108
virtual void Reset()
Rest the physics engine.
@ GLOBAL_CFM
Constraint force mixing.
Definition: BulletPhysics.hh:59
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:110
virtual void ConvertMass(void *_engineMass, InertialPtr _inertial)
Convert a gazebo Mass to a bullet Mass.
@ SOLVER_TYPE
Solve type.
Definition: BulletPhysics.hh:56
@ GLOBAL_ERP
Error reduction parameter.
Definition: BulletPhysics.hh:62
@ MAX_CONTACTS
Maximum number of contacts.
Definition: BulletPhysics.hh:74
@ CONTACT_SURFACE_LAYER
Surface layer depth.
Definition: BulletPhysics.hh:71
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:118
btDynamicsWorld * GetDynamicsWorld() const
Register a joint with the dynamics world.
Definition: BulletPhysics.hh:156
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:114
virtual void SetGravity(const ignition::math::Vector3d &_gravity)
Set the gravity vector.
@ MIN_STEP_SIZE
Minimum step size.
Definition: BulletPhysics.hh:77
boost::shared_ptr< World > WorldPtr
Definition: PhysicsTypes.hh:90
boost::shared_ptr< Inertial > InertialPtr
Definition: PhysicsTypes.hh:158
virtual ~BulletPhysics()
Destructor.
virtual double GetWorldCFM()