75       public: 
virtual ~
Link();
 
   79       public: 
virtual void Load(sdf::ElementPtr _sdf);
 
   82       public: 
virtual void Init();
 
   91       public: 
void ResetPhysicsStates();
 
   95       public: 
virtual void UpdateParameters(sdf::ElementPtr _sdf);
 
  108       public: 
virtual void SetEnabled(
bool _enable) 
const = 0;
 
  112       public: 
virtual bool GetEnabled() 
const = 0;
 
  117       public: 
virtual bool SetSelected(
bool _set);
 
  121       public: 
virtual void SetGravityMode(
bool _mode) = 0;
 
  125       public: 
virtual bool GetGravityMode() 
const = 0;
 
  131       public: 
virtual void SetSelfCollide(
bool _collide) = 0;
 
  141       public: 
void SetCollideMode(
const std::string &_mode);
 
  150       public: 
bool GetSelfCollide() 
const;
 
  154       public: 
void SetLaserRetro(
float _retro);
 
  158       public: 
virtual void SetLinearVel(
const math::Vector3 &_vel) = 0;
 
  162       public: 
virtual void SetAngularVel(
const math::Vector3 &_vel) = 0;
 
  174       public: 
virtual void SetForce(
const math::Vector3 &_force) = 0;
 
  178       public: 
virtual void SetTorque(
const math::Vector3 &_torque) = 0;
 
  182       public: 
virtual void AddForce(
const math::Vector3 &_force) = 0;
 
  187       public: 
virtual void AddRelativeForce(
const math::Vector3 &_force) = 0;
 
  192       public: 
virtual void AddForceAtWorldPosition(
const math::Vector3 &_force,
 
  199       public: 
virtual void AddForceAtRelativePosition(
 
  209       public: 
virtual void AddLinkForce(
const math::Vector3 &_force,
 
  214       public: 
virtual void AddTorque(
const math::Vector3 &_torque) = 0;
 
  219       public: 
virtual void AddRelativeTorque(
const math::Vector3 &_torque) = 0;
 
  258       public: 
virtual math::Vector3 GetWorldCoGLinearVel() 
const = 0;
 
  322       public: 
void SetInertial(
const InertialPtr &_inertial);
 
  329       public: 
math::Pose GetWorldInertialPose() 
const;
 
  341       public: 
CollisionPtr GetCollisionById(
unsigned int _id) 
const;
 
  347       public: 
CollisionPtr GetCollision(
const std::string &_name);
 
  352       public: 
CollisionPtr GetCollision(
unsigned int _index) 
const;
 
  361       public: 
virtual math::Box GetBoundingBox() 
const;
 
  365       public: 
virtual void SetLinearDamping(
double _damping) = 0;
 
  369       public: 
virtual void SetAngularDamping(
double _damping) = 0;
 
  373       public: 
double GetLinearDamping() 
const;
 
  377       public: 
double GetAngularDamping() 
const;
 
  382       public: 
virtual void SetKinematic(
const bool &_kinematic);
 
  395       public: 
unsigned int GetSensorCount() 
const;
 
  408       public: std::string GetSensorName(
unsigned int _index) 
const;
 
  413       public: 
template<
typename T>
 
  415               {
return enabledSignal.Connect(_subscriber);}
 
  420               {enabledSignal.Disconnect(_conn);}
 
  424       public: 
void FillMsg(msgs::Link &_msg);
 
  428       public: 
void ProcessMsg(
const msgs::Link &_msg);
 
  432       public: 
void AddChildJoint(
JointPtr _joint);
 
  436       public: 
void AddParentJoint(
JointPtr _joint);
 
  440       public: 
void RemoveParentJoint(
const std::string &_jointName);
 
  444       public: 
void RemoveChildJoint(
const std::string &_jointName);
 
  447       public: 
virtual void RemoveChild(
EntityPtr _child);
 
  453       public: 
void AttachStaticModel(
ModelPtr &_model,
 
  458       public: 
void DetachStaticModel(
const std::string &_modelName);
 
  461       public: 
void DetachAllStaticModels();
 
  465       public: 
virtual void OnPoseChange();
 
  469       public: 
void SetState(
const LinkState &_state);
 
  479       public: 
virtual void SetAutoDisable(
bool _disable) = 0;
 
  483       public: 
Link_V GetChildJointsLinks() 
const;
 
  487       public: 
Link_V GetParentJointsLinks() 
const;
 
  491       public: 
void SetPublishData(
bool _enable);
 
  494       public: 
Joint_V GetParentJoints() 
const;
 
  497       public: 
Joint_V GetChildJoints() 
const;
 
  501       public: 
void RemoveCollision(
const std::string &_name);
 
  506       public: 
double GetWorldEnergyPotential() 
const;
 
  511       public: 
double GetWorldEnergyKinetic() 
const;
 
  517       public: 
double GetWorldEnergy() 
const;
 
  522       public: msgs::Visual GetVisualMessage(
const std::string &_name) 
const;
 
  527       public: 
virtual void SetLinkStatic(
bool _static) = 0;
 
  537       public: 
void MoveFrame(
const math::Pose &_worldReferenceFrameSrc,
 
  554       public: 
bool FindAllConnectedLinksHelper(
 
  555         const LinkPtr &_originalParentLink,
 
  556         Link_V &_connectedLinks, 
bool _fistLink = 
false);
 
  570       public: 
size_t BatteryCount() 
const;
 
  576       public: 
bool VisualId(
const std::string &_visName, uint32_t &_visualId)
 
  583       public: 
bool VisualPose(
const uint32_t _id,
 
  584                   ignition::math::Pose3d &_pose) 
const;
 
  590       public: 
bool SetVisualPose(
const uint32_t _id,
 
  591                                  const ignition::math::Pose3d &_pose);
 
  594       private: 
void PublishData();
 
  598       private: 
void LoadCollision(sdf::ElementPtr _sdf);
 
  602       private: 
void SetInertialFromCollisions();
 
  606       private: 
void OnCollision(ConstContactsPtr &_msg);
 
  609       private: 
void ParseVisuals();
 
  615       private: 
bool ContainsLink(
const Link_V &_vector, 
const LinkPtr &_value);
 
  619       private: 
void UpdateVisualGeomSDF(
const math::Vector3 &_scale);
 
  622       private: 
void UpdateVisualMsg();
 
  627       private: 
void OnWrenchMsg(ConstWrenchPtr &_msg);
 
  631       private: 
void ProcessWrenchMsg(
const msgs::Wrench &_msg);
 
  635       private: 
void LoadBattery(
const sdf::ElementPtr _sdf);
 
  666       private: 
bool enabled;
 
  669       private: std::vector<std::string> sensors;
 
  672       private: std::vector<JointPtr> parentJoints;
 
  675       private: std::vector<JointPtr> childJoints;
 
  678       private: std::vector<ModelPtr> attachedModels;
 
  684       private: msgs::LinkData linkDataMsg;
 
  687       private: 
bool publishData;
 
  690       private: boost::recursive_mutex *publishDataMutex;
 
  699       private: std::vector<msgs::Wrench> wrenchMsgs;
 
  702       private: boost::mutex wrenchMsgMutex;
 
  705       private: std::vector<common::BatteryPtr> batteries;
 
  708       private: std::vector<util::OpenALSourcePtr> audioSources;
 
bool initialized
This flag is set to true when the link is initialized. 
Definition: Link.hh:660
 
boost::shared_ptr< Connection > ConnectionPtr
Definition: CommonTypes.hh:153
 
std::vector< JointPtr > Joint_V
Definition: PhysicsTypes.hh:204
 
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:88
 
#define GZ_PHYSICS_VISIBLE
Definition: system.hh:259
 
Encapsulates a position and rotation in three space. 
Definition: Pose.hh:37
 
The Vector3 class represents the generic vector containing 3 elements. 
Definition: Vector3.hh:39
 
virtual void UpdateSurface()
Update surface parameters. 
Definition: Link.hh:475
 
virtual void UpdateMass()
Update the mass matrix. 
Definition: Link.hh:472
 
Mathematical representation of a box and related functions. 
Definition: Box.hh:35
 
boost::shared_ptr< Subscriber > SubscriberPtr
Definition: TransportTypes.hh:53
 
boost::shared_ptr< Inertial > InertialPtr
Definition: PhysicsTypes.hh:148
 
virtual math::Vector3 GetWorldLinearVel() const 
Get the linear velocity of the origin of the link frame, expressed in the world frame. 
Definition: Link.hh:230
 
InertialPtr inertial
Inertial properties. 
Definition: Link.hh:638
 
virtual bool GetKinematic() const 
Implement this function. 
Definition: Link.hh:387
 
Forward declarations for transport. 
 
std::shared_ptr< OpenALSink > OpenALSinkPtr
Definition: UtilTypes.hh:44
 
virtual void Update()
Update the object. 
Definition: Base.hh:173
 
std::vector< std::string > cgVisuals
Center of gravity visual elements. 
Definition: Link.hh:641
 
Link class defines a rigid body entity, containing information on inertia, visual and collision prope...
Definition: Link.hh:68
 
std::vector< LinkPtr > Link_V
Definition: PhysicsTypes.hh:216
 
InertialPtr GetInertial() const 
Get the inertia of the link. 
Definition: Link.hh:318
 
Information for use in an update event. 
Definition: UpdateInfo.hh:30
 
Visuals_M visuals
Link visual elements. 
Definition: Link.hh:648
 
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:104
 
A 3x3 matrix class. 
Definition: Matrix3.hh:34
 
std::vector< math::Pose > attachedModelsOffset
Offsets for the attached models. 
Definition: Link.hh:657
 
std::shared_ptr< Battery > BatteryPtr
Definition: CommonTypes.hh:144
 
boost::shared_ptr< Entity > EntityPtr
Definition: PhysicsTypes.hh:80
 
OpenAL Source. 
Definition: OpenAL.hh:108
 
A quaternion class. 
Definition: Quaternion.hh:42
 
virtual void RemoveChild(unsigned int _id)
Remove a child from this entity. 
 
static const Vector3 Zero
math::Vector3(0, 0, 0) 
Definition: Vector3.hh:42
 
math::Vector3 linearAccel
Linear acceleration. 
Definition: Link.hh:651
 
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:108
 
Base class for all physics objects in Gazebo. 
Definition: Entity.hh:58
 
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message. 
 
void DisconnectEnabled(event::ConnectionPtr &_conn)
Disconnect to the add entity signal. 
Definition: Link.hh:419
 
math::Vector3 angularAccel
Angular acceleration. 
Definition: Link.hh:654
 
std::vector< CollisionPtr > Collision_V
Definition: PhysicsTypes.hh:220
 
std::map< uint32_t, msgs::Visual > Visuals_M
Definition: Link.hh:645
 
event::ConnectionPtr ConnectEnabled(T _subscriber)
Connect to the add entity signal. 
Definition: Link.hh:414
 
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
 
Store state information of a physics::Link object. 
Definition: LinkState.hh:49
 
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:100
 
OpenAL Listener. 
Definition: OpenAL.hh:87