28 #include <boost/function.hpp>
45 class recursive_mutex;
68 public:
virtual void Load(sdf::ElementPtr _sdf);
71 public:
virtual void Fini();
74 public:
virtual void Reset();
78 public:
virtual void UpdateParameters(sdf::ElementPtr _sdf);
82 public:
virtual void SetName(
const std::string &_name);
86 public:
void SetStatic(
const bool &_static);
90 public:
bool IsStatic()
const;
94 public:
void SetInitialRelativePose(
const math::Pose &_pose);
98 public:
math::Pose GetInitialRelativePose()
const;
102 public:
virtual math::Box GetBoundingBox()
const;
107 {
return this->worldPose;}
117 public:
void SetRelativePose(
const math::Pose &_pose,
119 bool _publish =
true);
125 public:
void SetWorldPose(
const math::Pose &_pose,
127 bool _publish =
true);
171 public:
void SetCanonicalLink(
bool _value);
176 {
return this->isCanonicalLink;}
182 boost::function<
void()> _onComplete);
189 public:
virtual void StopAnimation();
198 public:
CollisionPtr GetChildCollision(
const std::string &_name);
203 public:
LinkPtr GetChildLink(
const std::string &_name);
209 public:
void GetNearestEntityBelow(
double &_distBelow,
210 std::string &_entityName);
213 public:
void PlaceOnNearestEntityBelow();
218 public:
void PlaceOnEntity(
const std::string &_entityName);
222 public:
math::Box GetCollisionBoundingBox()
const;
231 bool _updateChildren =
true);
238 public:
const math::Pose &GetDirtyPose()
const;
242 protected:
virtual void OnPoseChange() = 0;
245 private:
void PublishPose();
256 private:
void SetWorldPoseModel(
const math::Pose &_pose,
264 private:
void SetWorldPoseCanonicalLink(
const math::Pose &_pose,
265 bool _notify,
bool _publish);
271 private:
void SetWorldPoseDefault(
const math::Pose &_pose,
bool _notify,
276 private:
void OnPoseMsg(ConstPosePtr &_msg);
283 private:
void UpdatePhysicsPose(
bool update_children =
true);
329 private:
bool isStatic;
332 private:
bool isCanonicalLink;
344 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
Definition: JointMaker.hh:41
Forward declarations for the common classes.
Definition: Animation.hh:33
Encapsulates a position and rotation in three space.
Definition: Pose.hh:37
event::ConnectionPtr animationConnection
Connection used to update an animation.
Definition: Entity.hh:320
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:146
transport::PublisherPtr visPub
Visual publisher.
Definition: Entity.hh:299
Information for use in an update event.
Definition: UpdateInfo.hh:30
math::Pose dirtyPose
The pose set by a physics engine.
Definition: Entity.hh:323
default namespace for gazebo
virtual math::Vector3 GetWorldLinearAccel() const
Get the linear acceleration of the entity in the world frame.
Definition: Entity.hh:156
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:96
math::Pose animationStartPose
Start pose of an animation.
Definition: Entity.hh:314
virtual math::Vector3 GetRelativeAngularVel() const
Get the angular velocity of the entity.
Definition: Entity.hh:141
virtual math::Vector3 GetWorldLinearVel() const
Get the linear velocity of the entity in the world frame.
Definition: Entity.hh:136
common::PoseAnimationPtr animation
Current pose animation.
Definition: Entity.hh:308
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:175
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:106
transport::NodePtr node
Communication node.
Definition: Entity.hh:296
Forward declarations for the math classes.
math::Pose worldPose
World pose of the entity.
Definition: Entity.hh:293
Base class for all physics objects in Gazebo.
Definition: Entity.hh:57
boost::shared_ptr< Node > NodePtr
Definition: TransportTypes.hh:57
common::Time prevAnimationTime
Previous time an animation was updated.
Definition: Entity.hh:311
std::vector< event::ConnectionPtr > connections
All our event connections.
Definition: Entity.hh:317
math::Vector3 scale
Scale of the entity.
Definition: Entity.hh:326
virtual math::Vector3 GetRelativeAngularAccel() const
Get the angular acceleration of the entity.
Definition: Entity.hh:161
virtual math::Vector3 GetRelativeLinearAccel() const
Get the linear acceleration of the entity.
Definition: Entity.hh:151
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:305
transport::PublisherPtr requestPub
Request publisher.
Definition: Entity.hh:302
virtual math::Vector3 GetWorldAngularAccel() const
Get the angular acceleration of the entity in the world frame.
Definition: Entity.hh:166
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:92
EntityPtr parentEntity
A helper that prevents numerous dynamic_casts.
Definition: Entity.hh:290
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:131