18 #ifndef GAZEBO_PHYSICS_BASE_HH_
19 #define GAZEBO_PHYSICS_BASE_HH_
21 #include <boost/enable_shared_from_this.hpp>
72 class GZ_PHYSICS_VISIBLE
Base :
public boost::enable_shared_from_this<Base>
86 COLLISION = 0x00000008,
95 BALL_JOINT = 0x00000080,
97 HINGE2_JOINT = 0x00000100,
99 HINGE_JOINT = 0x00000200,
101 SLIDER_JOINT = 0x00000400,
103 SCREW_JOINT = 0x00000800,
105 UNIVERSAL_JOINT = 0x00001000,
107 GEARBOX_JOINT = 0x00002000,
109 FIXED_JOINT = 0x00004000,
117 BOX_SHAPE = 0x00020000,
119 CYLINDER_SHAPE = 0x00040000,
121 HEIGHTMAP_SHAPE = 0x00080000,
123 MAP_SHAPE = 0x00100000,
125 MULTIRAY_SHAPE = 0x00200000,
127 RAY_SHAPE = 0x00400000,
129 PLANE_SHAPE = 0x00800000,
131 SPHERE_SHAPE = 0x01000000,
133 MESH_SHAPE = 0x02000000,
135 POLYLINE_SHAPE = 0x04000000,
138 SENSOR_COLLISION = 0x10000000
150 public:
virtual void Load(sdf::ElementPtr _sdf);
175 public:
virtual void SetName(
const std::string &_name);
227 public:
BasePtr GetById(
unsigned int _id)
const;
309 public:
void Print(
const std::string &_prefix);
324 public:
bool operator ==(
const Base &_ent)
const;
337 public:
virtual const sdf::ElementPtr
GetSDF();
364 protected: sdf::ElementPtr
sdf;
379 private:
bool saveable;
382 private: uint32_t id;
385 private:
unsigned int type;
388 private: std::string typeStr;
391 private:
bool selected;
394 private: std::string name;
397 private: std::string scopedName;
default namespace for gazebo
A complete URI.
Definition: URI.hh:177
Base class for most physics classes.
Definition: Base.hh:73
unsigned int GetType() const
Get the full type definition.
BasePtr parent
Parent of this entity.
Definition: Base.hh:367
virtual bool SetSelected(bool _show)
Set whether this entity has been selected by the user through the gui.
bool IsSelected() const
True if the entity is selected by the user.
virtual std::optional< sdf::SemanticPose > SDFSemanticPose() const
Get the SDF SemanticPose object associated with the pose of this object.
std::string GetScopedName(bool _prependWorldName=false) const
Return the name of this entity with the model scope model1::...::modelN::entityName.
std::vector< common::URI > introspectionItems
All the introspection items regsitered for this.
Definition: Base.hh:376
virtual void Fini()
Finialize the object.
BasePtr GetByName(const std::string &_name)
Get by name.
void AddType(EntityType _type)
Add a type specifier.
void Print(const std::string &_prefix)
Print this object to screen via gzmsg.
virtual void Init()
Initialize the object.
Definition: Base.hh:156
BasePtr GetChild(unsigned int _i) const
Get a child by index.
void AddChild(BasePtr _child)
Add a child to this entity.
virtual void Reset()
Reset the object.
Base_V children
Children of this entity.
Definition: Base.hh:370
Base(BasePtr _parent)
Constructor.
virtual void SetName(const std::string &_name)
Set the name of the entity.
virtual void RemoveChild(unsigned int _id)
Remove a child from this entity.
virtual const sdf::ElementPtr GetSDF()
Get the SDF values for the object.
void RemoveChild(const std::string &_name)
Remove a child by name.
BasePtr GetByIdRecursive(unsigned int _id)
This is an internal function.
bool HasType(const EntityType &_t) const
Returns true if this object's type definition has the given type.
common::URI URI() const
Return the common::URI of this entity.
void SetParent(BasePtr _parent)
Set the parent.
void SetWorld(const WorldPtr &_newWorld)
Set the world this object belongs to.
virtual void RegisterIntrospectionItems()
Register items in the introspection service.
unsigned int GetChildCount() const
Get the number of children.
const WorldPtr & GetWorld() const
Get the World this object is in.
std::string GetName() const
Return the name of the entity.
sdf::ElementPtr sdf
The SDF values for this object.
Definition: Base.hh:364
ignition::math::Pose3d SDFPoseRelativeToParent() const
Get the SDF pose of the object according to the sdf 1.6 convention.
void RemoveChildren()
Remove all children.
void SetSaveable(bool _v)
Set whether the object should be "saved", when the user selects to save the world to xml.
BasePtr GetChild(const std::string &_name)
Get a child by name.
virtual ~Base()
Destructor.
int GetParentId() const
Return the ID of the parent.
void ComputeScopedName()
Compute the scoped name of this object based on its parents.
WorldPtr world
Pointer to the world.
Definition: Base.hh:373
std::string StripScopedName(const std::string &_name) const
Return a short version of the name with "ScopedName::" removed.
virtual void Load(sdf::ElementPtr _sdf)
Load.
virtual void UnregisterIntrospectionItems()
Unregister items in the introspection service.
uint32_t GetId() const
Return the ID of this entity.
std::string StripParentScopedName(const std::string &_name) const
Return a short version of the name with "ParentScopedName::" removed.
virtual void UpdateParameters(sdf::ElementPtr _sdf)
Update the parameters using new sdf values.
EntityType
Unique identifiers for all entity types.
Definition: Base.hh:76
void RemoveChild(physics::BasePtr _child)
Remove a child by pointer.
std::string TypeStr() const
Get the string name for the entity type.
virtual void Reset(Base::EntityType _resetType)
Calls recursive Reset on one of the Base::EntityType's.
bool GetSaveable() const
Get whether the object should be "saved", when the user selects to save the world to xml.
BasePtr GetParent() const
Get the parent.
virtual void Update()
Update the object.
Definition: Base.hh:166
Base class for all physics objects in Gazebo.
Definition: Entity.hh:53
static std::string EntityTypename[]
String names for the different entity types.
Definition: Base.hh:42
std::vector< BasePtr > Base_V
Definition: PhysicsTypes.hh:202
boost::shared_ptr< Base > BasePtr
Definition: PhysicsTypes.hh:78
boost::shared_ptr< World > WorldPtr
Definition: PhysicsTypes.hh:90
Forward declarations for the common classes.
Definition: Animation.hh:27