22 #ifndef BULLETPHYSICS_HH
23 #define BULLETPHYSICS_HH
26 #include <boost/thread/thread.hpp>
27 #include <boost/thread/mutex.hpp>
86 public:
virtual void Load(sdf::ElementPtr _sdf);
89 public:
virtual void Init();
92 public:
virtual void Reset();
95 public:
virtual void InitForThread();
98 public:
virtual void UpdateCollision();
101 public:
virtual void UpdatePhysics();
104 public:
virtual void Fini();
114 public:
virtual CollisionPtr CreateCollision(
const std::string &_type,
118 public:
virtual JointPtr CreateJoint(
const std::string &_type,
122 public:
virtual ShapePtr CreateShape(
const std::string &_shapeType,
129 protected:
virtual void OnRequest(ConstRequestPtr &_msg);
132 protected:
virtual void OnPhysicsMsg(ConstPhysicsPtr &_msg);
135 public:
virtual void ConvertMass(
InertialPtr _inertial,
139 public:
virtual void ConvertMass(
void *_engineMass,
146 public:
virtual void SetWorldCFM(
double _cfm);
149 public:
virtual double GetWorldCFM();
152 public:
virtual void SetSeed(uint32_t _seed);
156 {
return this->dynamicsWorld;}
158 public:
virtual void DebugPrint()
const;
161 public:
virtual bool SetParam(
const std::string &_key,
162 const boost::any &_value);
165 public:
virtual boost::any GetParam(
const std::string &_key)
const;
168 public:
virtual bool GetParam(
const std::string &_key,
169 boost::any &_value)
const;
172 public:
virtual void SetSORPGSIters(
unsigned int iters);
174 private: btBroadphaseInterface *broadPhase;
175 private: btDefaultCollisionConfiguration *collisionConfig;
176 private: btCollisionDispatcher *dispatcher;
177 private: btSequentialImpulseConstraintSolver *solver;
178 private: btDiscreteDynamicsWorld *dynamicsWorld;
183 private: std::string solverType;
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:88
#define GZ_PHYSICS_VISIBLE
Definition: system.hh:259
Surface layer depth.
Definition: BulletPhysics.hh:70
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:39
boost::shared_ptr< Shape > ShapePtr
Definition: PhysicsTypes.hh:132
boost::shared_ptr< Inertial > InertialPtr
Definition: PhysicsTypes.hh:148
Base class for a physics engine.
Definition: PhysicsEngine.hh:40
virtual std::string GetType() const
Return the physics engine type (ode|bullet|dart|simbody).
Definition: BulletPhysics.hh:107
Bullet physics engine.
Definition: BulletPhysics.hh:48
Solve type.
Definition: BulletPhysics.hh:55
Maximum number of contacts.
Definition: BulletPhysics.hh:73
btDynamicsWorld * GetDynamicsWorld() const
Register a joint with the dynamics world.
Definition: BulletPhysics.hh:155
BulletParam
Bullet physics parameter types.
Definition: BulletPhysics.hh:52
Error reduction parameter.
Definition: BulletPhysics.hh:61
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:104
Number of iterations.
Definition: BulletPhysics.hh:64
Constraint force mixing.
Definition: BulletPhysics.hh:58
SOR over-relaxation parameter.
Definition: BulletPhysics.hh:67
boost::shared_ptr< World > WorldPtr
Definition: PhysicsTypes.hh:84
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:108
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:100
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:44