22#ifndef _BULLETJOINT_HH_
23#define _BULLETJOINT_HH_
25#include <boost/any.hpp>
50 public:
virtual void Load(sdf::ElementPtr _sdf)
override;
53 public:
virtual void Fini()
override;
56 public:
virtual void Reset()
override;
66 public:
virtual void Detach()
override;
69 public:
virtual void SetAnchor(
const unsigned int _index,
70 const ignition::math::Vector3d &_anchor)
74 public:
virtual void SetDamping(
unsigned int _index,
double _damping)
79 const unsigned int _index,
const double _position,
80 const bool _preserveWorldVelocity =
false)
override;
84 const double _stiffness)
override;
88 double _stiffness,
double _damping,
double _reference = 0)
override;
91 public:
virtual ignition::math::Vector3d
Anchor(
92 const unsigned int _index)
const override;
97 const unsigned int _index)
const override;
102 const unsigned int _index)
const override;
105 public:
virtual bool SetParam(
const std::string &_key,
107 const boost::any &_value)
override;
110 public:
virtual double GetParam(
const std::string &_key,
111 unsigned int _index)
override;
123 public:
virtual void SetForce(
unsigned int _index,
double _force)
127 public:
virtual double GetForce(
unsigned int _index)
override;
130 public:
virtual void Init()
override;
155 private:
void SaveForce(
unsigned int _index,
double _force);
164 private: btJointFeedback *feedback;
168 private:
bool stiffnessDampingInitialized;
#define MAX_JOINT_AXIS
maximum number of axis per joint anticipated.
Definition Joint.hh:39
A Time class, can be used to hold wall- or sim-time.
Definition Time.hh:48
Base class for all joints.
Definition BulletJoint.hh:42
virtual ~BulletJoint()
Destructor.
virtual void SetDamping(unsigned int _index, double _damping) override
Set the joint damping.
virtual ignition::math::Vector3d LinkForce(const unsigned int _index) const override
Get the force the joint applies to the first body.
virtual void ApplyStiffnessDamping() override
Callback to apply spring stiffness and viscous damping effects to joint.
virtual void Detach() override
Detach this joint from all bodies.
virtual ignition::math::Vector3d LinkTorque(const unsigned int _index) const override
Get the torque the joint applies to the first body.
virtual ignition::math::Vector3d Anchor(const unsigned int _index) const override
Get the anchor point.
btDynamicsWorld * bulletWorld
Pointer to Bullet's btDynamicsWorld.
Definition BulletJoint.hh:161
virtual bool SetPosition(const unsigned int _index, const double _position, const bool _preserveWorldVelocity=false) override
The child links of this joint are updated based on desired position.
virtual JointWrench GetForceTorque(unsigned int _index) override
get internal force and torque values at a joint.
virtual double GetForce(unsigned int _index) override
virtual void SetProvideFeedback(bool _enable) override
Set whether the joint should generate feedback.
LinkPtr GetJointLink(unsigned int _index) const override
Get the body to which the joint is attached according the _index.
virtual double GetParam(const std::string &_key, unsigned int _index) override
Get a non-generic parameter for the joint.
void SetupJointFeedback()
: Setup joint feedback datatructure.
virtual void SetForce(unsigned int _index, double _force) override
Set the force applied to this physics::Joint.
virtual void SetStiffnessDamping(unsigned int _index, double _stiffness, double _damping, double _reference=0) override
Set the joint spring stiffness.
virtual void Fini() override
Finialize the object.
virtual void SetAnchor(const unsigned int _index, const ignition::math::Vector3d &_anchor) override
Set the anchor point.
BulletJoint(BasePtr _parent)
Constructor.
bool AreConnected(LinkPtr _one, LinkPtr _two) const override
Determines of the two bodies are connected by a joint.
btTypedConstraint * constraint
Pointer to a contraint object in Bullet.
Definition BulletJoint.hh:158
virtual void CacheForceTorque() override
Cache Joint Force Torque Values if necessary for physics engine.
virtual void Reset() override
Reset the joint.
virtual void SetForceImpl(unsigned int _index, double _force)=0
Set the force applied to this physics::Joint.
virtual void SetStiffness(unsigned int _index, const double _stiffness) override
Set the joint spring stiffness.
virtual void Init() override
Initialize a joint.
virtual void Load(sdf::ElementPtr _sdf) override
Load a BulletJoint.
virtual bool SetParam(const std::string &_key, unsigned int _index, const boost::any &_value) override
Set a non-generic parameter for the joint.
Wrench information from a joint.
Definition JointWrench.hh:41
Base class for all joints.
Definition Joint.hh:51
boost::shared_ptr< Link > LinkPtr
Definition PhysicsTypes.hh:109
boost::shared_ptr< Base > BasePtr
Definition PhysicsTypes.hh:77
Forward declarations for the common classes.
Definition Animation.hh:27