17#ifndef GAZEBO_PHYSICS_DART_DARTLINK_HH_
18#define GAZEBO_PHYSICS_DART_DARTLINK_HH_
33 class DARTLinkPrivate;
48 public:
virtual void Load(sdf::ElementPtr _ptr);
51 public:
virtual void Init();
54 public:
virtual void Fini();
66 public:
virtual void SetLinearVel(
const ignition::math::Vector3d &_vel);
69 public:
virtual void SetAngularVel(
const ignition::math::Vector3d &_vel);
72 public:
virtual void SetForce(
const ignition::math::Vector3d &_force);
75 public:
virtual void SetTorque(
const ignition::math::Vector3d &_torque);
78 public:
virtual void AddForce(
const ignition::math::Vector3d &_force);
82 const ignition::math::Vector3d &_force);
86 const ignition::math::Vector3d &_force,
87 const ignition::math::Vector3d &_pos);
91 const ignition::math::Vector3d &_force,
92 const ignition::math::Vector3d &_relpos);
96 const ignition::math::Vector3d &_force,
97 const ignition::math::Vector3d &_offset =
98 ignition::math::Vector3d::Zero);
101 public:
virtual void AddTorque(
const ignition::math::Vector3d &_torque);
105 const ignition::math::Vector3d &_torque);
109 const ignition::math::Vector3d &_offset =
110 ignition::math::Vector3d::Zero)
const;
114 const ignition::math::Vector3d &_offset,
115 const ignition::math::Quaterniond &_q)
const;
170 public: dart::simulation::WorldPtr
DARTWorld(
void)
const;
210 private: DARTLinkPrivate *dataPtr;
DART wrapper forward declarations and typedefs.
DART Link class.
Definition DARTLink.hh:40
virtual ~DARTLink()
Destructor.
virtual void SetAngularVel(const ignition::math::Vector3d &_vel)
Set the angular velocity of the body.
bool RemoveSlaveBodyNode(dart::dynamics::BodyNode *_dtBodyNode)
Remove a BodyNode representing a fragment of this link.
virtual void SetKinematic(const bool &_state)
\TODO Implement this function.
virtual void UpdateMass()
Update the mass matrix.
virtual void Fini()
Finalize the entity.
virtual void SetLinearDamping(double _damping)
Set the linear damping factor.
virtual void Init()
Initialize the body.
DARTBodyNodePropPtr DARTProperties() const
Get DART BodyNode properties.
virtual void AddRelativeForce(const ignition::math::Vector3d &_force)
Add a force to the body, components are relative to the body's own frame of reference.
virtual bool GetEnabled() const
Get whether this body is enabled in the physics engine.
virtual void Load(sdf::ElementPtr _ptr)
Load the body based on an SDF element.
virtual void SetEnabled(bool _enable) const
Set whether this body is enabled.
virtual bool GetGravityMode() const
Get the gravity mode.
virtual bool GetKinematic() const
\TODO Implement this function.
void AddDARTChildJoint(DARTJointPtr _dartChildJoint)
Set child joint of this link.
DARTLink(EntityPtr _parent)
Constructor.
virtual void SetForce(const ignition::math::Vector3d &_force)
Set the force applied to the body.
virtual void SetSelfCollide(bool _collide)
Set whether this body will collide with others in the model.
DARTPhysicsPtr GetDARTPhysics(void) const
Get pointer to DART Physics engine associated with this link.
DARTModelPtr GetDARTModel() const
Get pointer to DART Model associated with this link.
virtual void SetAutoDisable(bool _disable)
Allow the link to auto disable.
virtual void SetTorque(const ignition::math::Vector3d &_torque)
Set the torque applied to the body.
virtual void SetLinkStatic(bool _static)
Freeze link to ground (inertial frame).
virtual ignition::math::Vector3d WorldAngularVel() const
Get the angular velocity of the entity in the world frame.
virtual void AddTorque(const ignition::math::Vector3d &_torque)
Add a torque to the body.
dart::simulation::WorldPtr DARTWorld(void) const
Get pointer to DART World associated with this link.
virtual void AddLinkForce(const ignition::math::Vector3d &_force, const ignition::math::Vector3d &_offset=ignition::math::Vector3d::Zero)
Add a force expressed in the link frame.
virtual ignition::math::Vector3d WorldLinearVel(const ignition::math::Vector3d &_offset=ignition::math::Vector3d::Zero) const
Get the linear velocity of a point on the body in the world frame, using an offset expressed in a bod...
virtual void AddForceAtWorldPosition(const ignition::math::Vector3d &_force, const ignition::math::Vector3d &_pos)
Add a force to the body using a global position.
virtual ignition::math::Vector3d WorldForce() const
Get the force applied to the body in the world frame.
virtual void SetLinearVel(const ignition::math::Vector3d &_vel)
Set the linear velocity of the body.
virtual void SetGravityMode(bool _mode)
Set whether gravity affects this body.
virtual void AddForceAtRelativePosition(const ignition::math::Vector3d &_force, const ignition::math::Vector3d &_relpos)
Add a force (in world frame coordinates) to the body at a position relative to the center of mass whi...
virtual void AddForce(const ignition::math::Vector3d &_force)
Add a force to the body.
virtual ignition::math::Vector3d WorldCoGLinearVel() const
Get the linear velocity at the body's center of gravity in the world frame.
void SetDARTBodyNode(dart::dynamics::BodyNode *_dtBodyNode)
Set pointer to DART BodyNode associated with this link.
void updateDirtyPoseFromDARTTransformation()
Store DART Transformation to Entity::dirtyPose and add this link to World::dirtyPoses so that World::...
void AddSlaveBodyNode(dart::dynamics::BodyNode *_dtBodyNode)
Add pointer to a BodyNode representing a fragment of this link.
void SetDARTParentJoint(DARTJointPtr _dartParentJoint)
Set parent joint of this link.
virtual ignition::math::Vector3d WorldLinearVel(const ignition::math::Vector3d &_offset, const ignition::math::Quaterniond &_q) const
Get the linear velocity of a point on the body in the world frame, using an offset expressed in an ar...
virtual ignition::math::Vector3d WorldTorque() const
Get the torque applied to the body about the center of mass in world frame coordinates.
virtual void OnPoseChange()
This function is called when the entity's (or one of its parents) pose of the parent has changed.
virtual void SetAngularDamping(double _damping)
Set the angular damping factor.
bool IsSoftBody() const
Get whether this link is soft body.
virtual void AddRelativeTorque(const ignition::math::Vector3d &_torque)
Add a torque to the body, components are relative to the body's own frame of reference.
dart::dynamics::BodyNode * DARTBodyNode() const
Get pointer to DART BodyNode associated with this link.
Link class defines a rigid body entity, containing information on inertia, visual and collision prope...
Definition Link.hh:53
boost::shared_ptr< DARTJoint > DARTJointPtr
Definition DARTTypes.hh:48
boost::shared_ptr< DARTPhysics > DARTPhysicsPtr
Definition DARTTypes.hh:45
boost::shared_ptr< DARTModel > DARTModelPtr
Definition DARTTypes.hh:46
std::shared_ptr< dart::dynamics::BodyNode::Properties > DARTBodyNodePropPtr
Definition DARTTypes.hh:53
boost::shared_ptr< Entity > EntityPtr
Definition PhysicsTypes.hh:85
Forward declarations for the common classes.
Definition Animation.hh:27