ARGoS  3
A parallel, multi-engine simulator for swarm robotics
positional_entity.h
Go to the documentation of this file.
1 
7 #ifndef POSITIONAL_ENTITY_H
8 #define POSITIONAL_ENTITY_H
9 
10 namespace argos {
11  class CPositionalEntity;
12 }
13 
14 #include <argos3/core/simulator/entity/entity.h>
15 #include <argos3/core/utility/math/vector3.h>
16 #include <argos3/core/utility/math/quaternion.h>
17 
18 namespace argos {
19 
20  class CPositionalEntity : public CEntity {
21 
22  public:
23 
24  ENABLE_VTABLE();
25 
27 
29  const std::string& str_id,
30  const CVector3& c_position = CVector3(),
31  const CQuaternion& c_orientation = CQuaternion());
32 
33  virtual void Init(TConfigurationNode& t_tree);
34  virtual void Reset();
35 
36  inline const CVector3& GetPosition() const {
37  return m_cPosition;
38  }
39 
40  inline const CVector3& GetInitPosition() const {
41  return m_cInitPosition;
42  }
43 
44  inline void SetPosition(const CVector3& c_position) {
45  m_cPosition = c_position;
46  }
47 
48  inline void SetInitPosition(const CVector3& c_position) {
49  m_cInitPosition = c_position;
50  }
51 
52  inline const CQuaternion& GetOrientation() const {
53  return m_cOrientation;
54  }
55 
56  inline const CQuaternion& GetInitOrientation() const {
57  return m_cInitOrientation;
58  }
59 
60  inline void SetOrientation(const CQuaternion c_orientation) {
61  m_cOrientation = c_orientation;
62  }
63 
64  inline void SetInitOrientation(const CQuaternion c_orientation) {
65  m_cInitOrientation = c_orientation;
66  }
67 
68  virtual void MoveTo(const CVector3& c_position,
69  const CQuaternion& c_orientation);
70 
71  virtual std::string GetTypeDescription() const {
72  return "position";
73  }
74 
75  private:
76 
77  CVector3 m_cPosition;
78  CVector3 m_cInitPosition;
79  CQuaternion m_cOrientation;
80  CQuaternion m_cInitOrientation;
81  };
82 }
83 
84 #endif
argos::CPositionalEntity::SetInitOrientation
void SetInitOrientation(const CQuaternion c_orientation)
Definition: positional_entity.h:64
argos::CPositionalEntity::CPositionalEntity
CPositionalEntity(CComposableEntity *pc_parent)
Definition: positional_entity.cpp:18
argos::CPositionalEntity::ENABLE_VTABLE
ENABLE_VTABLE()
argos
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
argos::CVector3
A 3D vector class.
Definition: vector3.h:29
argos::CPositionalEntity::GetInitOrientation
const CQuaternion & GetInitOrientation() const
Definition: positional_entity.h:56
argos::CComposableEntity
Basic class for an entity that contains other entities.
Definition: composable_entity.h:32
argos::CPositionalEntity::SetInitPosition
void SetInitPosition(const CVector3 &c_position)
Definition: positional_entity.h:48
argos::TConfigurationNode
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
Definition: argos_configuration.h:27
argos::CPositionalEntity::GetPosition
const CVector3 & GetPosition() const
Definition: positional_entity.h:36
argos::CPositionalEntity::GetTypeDescription
virtual std::string GetTypeDescription() const
Returns a string label for this class.
Definition: positional_entity.h:71
argos::CQuaternion
Definition: quaternion.h:14
argos::CPositionalEntity
Definition: positional_entity.h:20
argos::CPositionalEntity::MoveTo
virtual void MoveTo(const CVector3 &c_position, const CQuaternion &c_orientation)
Definition: positional_entity.cpp:65
argos::CPositionalEntity::SetPosition
void SetPosition(const CVector3 &c_position)
Definition: positional_entity.h:44
argos::CEntity
The basic entity type.
Definition: entity.h:89
argos::CPositionalEntity::GetOrientation
const CQuaternion & GetOrientation() const
Definition: positional_entity.h:52
argos::CPositionalEntity::GetInitPosition
const CVector3 & GetInitPosition() const
Definition: positional_entity.h:40
argos::CPositionalEntity::SetOrientation
void SetOrientation(const CQuaternion c_orientation)
Definition: positional_entity.h:60
argos::CPositionalEntity::Init
virtual void Init(TConfigurationNode &t_tree)
Initializes the state of the entity from the XML configuration tree.
Definition: positional_entity.cpp:37
argos::CPositionalEntity::Reset
virtual void Reset()
Resets the state of the entity to whatever it was after Init() or the standalone constructor was call...
Definition: positional_entity.cpp:56