17 #ifndef GAZEBO_PHYSICS_ODE_ODELINK_HH_
18 #define GAZEBO_PHYSICS_ODE_ODELINK_HH_
20 #include <ignition/math/Vector3.hh>
45 public:
virtual void Load(sdf::ElementPtr _sdf);
48 public:
virtual void Init();
51 public:
virtual void Fini();
54 public:
virtual void OnPoseChange();
57 public:
virtual void SetEnabled(
bool _enable)
const;
60 public:
virtual bool GetEnabled()
const;
66 public:
void UpdateCollisionOffsets();
69 public:
virtual void UpdateMass();
72 public:
virtual void UpdateSurface();
75 public:
virtual void SetLinearVel(
const ignition::math::Vector3d &_vel);
78 public:
virtual void SetAngularVel(
const ignition::math::Vector3d &_vel);
81 public:
virtual void SetForce(
const ignition::math::Vector3d &_force);
84 public:
virtual void SetTorque(
const ignition::math::Vector3d &_torque);
87 public:
virtual void AddForce(
const ignition::math::Vector3d &_force);
90 public:
virtual void AddRelativeForce(
91 const ignition::math::Vector3d &_force);
94 public:
virtual void AddForceAtWorldPosition(
95 const ignition::math::Vector3d &_force,
96 const ignition::math::Vector3d &_pos);
99 public:
virtual void AddForceAtRelativePosition(
100 const ignition::math::Vector3d &_force,
101 const ignition::math::Vector3d &_relpos);
104 public:
virtual void AddLinkForce(
105 const ignition::math::Vector3d &_force,
106 const ignition::math::Vector3d &_offset =
107 ignition::math::Vector3d::Zero);
110 public:
virtual void AddTorque(
const ignition::math::Vector3d &_torque);
113 public:
virtual void AddRelativeTorque(
114 const ignition::math::Vector3d &_torque);
117 public:
virtual ignition::math::Vector3d WorldLinearVel(
118 const ignition::math::Vector3d &_offset)
const;
121 public:
virtual ignition::math::Vector3d WorldLinearVel(
122 const ignition::math::Vector3d &_offset,
123 const ignition::math::Quaterniond &_q)
const;
126 public:
virtual ignition::math::Vector3d WorldCoGLinearVel()
const;
129 public:
virtual ignition::math::Vector3d WorldAngularVel()
const;
132 public:
virtual ignition::math::Vector3d WorldForce()
const;
135 public:
virtual ignition::math::Vector3d WorldTorque()
const;
138 public:
virtual void SetGravityMode(
bool _mode);
141 public:
virtual bool GetGravityMode()
const;
144 public:
void SetSelfCollide(
bool _collide);
147 public:
virtual void SetLinearDamping(
double _damping);
150 public:
virtual void SetAngularDamping(
double _damping);
153 public:
virtual void SetKinematic(
const bool &_state);
156 public:
virtual bool GetKinematic()
const;
159 public:
virtual void SetAutoDisable(
bool _disable);
163 public: dBodyID GetODEId()
const;
167 public: dSpaceID GetSpaceId()
const;
171 public:
void SetSpaceId(dSpaceID _spaceid);
175 public:
static void DisabledCallback(dBodyID _id);
180 public:
static void MoveCallback(dBodyID _id);
183 public:
virtual void SetLinkStatic(
bool _static);
186 private: dBodyID linkId;
192 private: dSpaceID spaceId;
195 private: ignition::math::Vector3d force;
198 private: ignition::math::Vector3d torque;
boost::shared_ptr< ODEPhysics > ODEPhysicsPtr
Definition: ODETypes.hh:59
Link class defines a rigid body entity, containing information on inertia, visual and collision prope...
Definition: Link.hh:65
ODE Link class.
Definition: ODELink.hh:35
ODE wrapper forward declarations and typedefs.
boost::shared_ptr< Entity > EntityPtr
Definition: PhysicsTypes.hh:85
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.