44 class recursive_mutex;
67 public:
virtual void Load(sdf::ElementPtr _sdf);
70 public:
virtual void Fini();
73 public:
virtual void Reset();
77 public:
virtual void UpdateParameters(sdf::ElementPtr _sdf);
81 public:
virtual void SetName(
const std::string &_name);
85 public:
void SetStatic(
const bool &_static);
89 public:
bool IsStatic()
const;
93 public:
void SetInitialRelativePose(
const math::Pose &_pose);
97 public:
math::Pose GetInitialRelativePose()
const;
101 public:
virtual math::Box GetBoundingBox()
const;
106 {
return this->worldPose;}
116 public:
void SetRelativePose(
const math::Pose &_pose,
118 bool _publish =
true);
124 public:
void SetWorldPose(
const math::Pose &_pose,
126 bool _publish =
true);
170 public:
void SetCanonicalLink(
bool _value);
175 {
return this->isCanonicalLink;}
181 boost::function<
void()> _onComplete);
188 public:
virtual void StopAnimation();
197 public:
CollisionPtr GetChildCollision(
const std::string &_name);
202 public:
LinkPtr GetChildLink(
const std::string &_name);
208 public:
void GetNearestEntityBelow(
double &_distBelow,
209 std::string &_entityName);
212 public:
void PlaceOnNearestEntityBelow();
217 public:
void PlaceOnEntity(
const std::string &_entityName);
221 public:
math::Box GetCollisionBoundingBox()
const;
230 bool _updateChildren =
true);
237 public:
const math::Pose &GetDirtyPose()
const;
241 protected:
virtual void OnPoseChange() = 0;
244 private:
void PublishPose();
255 private:
void SetWorldPoseModel(
const math::Pose &_pose,
263 private:
void SetWorldPoseCanonicalLink(
const math::Pose &_pose,
264 bool _notify,
bool _publish);
270 private:
void SetWorldPoseDefault(
const math::Pose &_pose,
bool _notify,
275 private:
void OnPoseMsg(ConstPosePtr &_msg);
282 private:
void UpdatePhysicsPose(
bool update_children =
true);
328 private:
bool isStatic;
331 private:
bool isCanonicalLink;
343 private: boost::function<void()> onAnimationComplete;
boost::shared_ptr< Connection > ConnectionPtr
Definition: CommonTypes.hh:147
boost::shared_ptr< Base > BasePtr
Definition: PhysicsTypes.hh:68
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:84
#define GZ_PHYSICS_VISIBLE
Definition: system.hh:318
Encapsulates a position and rotation in three space.
Definition: Pose.hh:37
event::ConnectionPtr animationConnection
Connection used to update an animation.
Definition: Entity.hh:319
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:39
Mathematical representation of a box and related functions.
Definition: Box.hh:35
boost::shared_ptr< Subscriber > SubscriberPtr
Definition: TransportTypes.hh:53
Forward declarations for transport.
virtual math::Vector3 GetWorldAngularVel() const
Get the angular velocity of the entity in the world frame.
Definition: Entity.hh:145
transport::PublisherPtr visPub
Visual publisher.
Definition: Entity.hh:298
Information for use in an update event.
Definition: UpdateInfo.hh:30
math::Pose dirtyPose
The pose set by a physics engine.
Definition: Entity.hh:322
default namespace for gazebo
virtual math::Vector3 GetWorldLinearAccel() const
Get the linear acceleration of the entity in the world frame.
Definition: Entity.hh:155
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:96
math::Pose animationStartPose
Start pose of an animation.
Definition: Entity.hh:313
virtual math::Vector3 GetRelativeAngularVel() const
Get the angular velocity of the entity.
Definition: Entity.hh:140
virtual math::Vector3 GetWorldLinearVel() const
Get the linear velocity of the entity in the world frame.
Definition: Entity.hh:135
common::PoseAnimationPtr animation
Current pose animation.
Definition: Entity.hh:307
boost::shared_ptr< Entity > EntityPtr
Definition: PhysicsTypes.hh:76
bool IsCanonicalLink() const
A helper function that checks if this is a canonical body.
Definition: Entity.hh:174
Base class for most physics classes.
Definition: Base.hh:80
virtual const math::Pose & GetWorldPose() const
Get the absolute pose of the entity.
Definition: Entity.hh:105
transport::NodePtr node
Communication node.
Definition: Entity.hh:295
Forward declarations for the math classes.
math::Pose worldPose
World pose of the entity.
Definition: Entity.hh:292
Base class for all physics objects in Gazebo.
Definition: Entity.hh:56
boost::shared_ptr< Node > NodePtr
Definition: TransportTypes.hh:57
common::Time prevAnimationTime
Previous time an animation was updated.
Definition: Entity.hh:310
std::vector< event::ConnectionPtr > connections
All our event connections.
Definition: Entity.hh:316
math::Vector3 scale
Scale of the entity.
Definition: Entity.hh:325
virtual math::Vector3 GetRelativeAngularAccel() const
Get the angular acceleration of the entity.
Definition: Entity.hh:160
virtual math::Vector3 GetRelativeLinearAccel() const
Get the linear acceleration of the entity.
Definition: Entity.hh:150
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
boost::shared_ptr< PoseAnimation > PoseAnimationPtr
Definition: CommonTypes.hh:126
msgs::Visual * visualMsg
Visual message container.
Definition: Entity.hh:304
transport::PublisherPtr requestPub
Request publisher.
Definition: Entity.hh:301
virtual math::Vector3 GetWorldAngularAccel() const
Get the angular acceleration of the entity in the world frame.
Definition: Entity.hh:165
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:92
EntityPtr parentEntity
A helper that prevents numerous dynamic_casts.
Definition: Entity.hh:289
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:39
virtual math::Vector3 GetRelativeLinearVel() const
Get the linear velocity of the entity.
Definition: Entity.hh:130