ARGoS  3
A parallel, multi-engine simulator for swarm robotics
rab_equipped_entity.h
Go to the documentation of this file.
1 
7 #ifndef RAB_EQUIPPED_ENTITY_H
8 #define RAB_EQUIPPED_ENTITY_H
9 
10 namespace argos {
11  class CRABEquippedEntity;
12  class CEmbodiedEntity;
13  struct SAnchor;
14 }
15 
16 #include <argos3/core/utility/datatypes/byte_array.h>
17 #include <argos3/core/utility/datatypes/set.h>
18 #include <argos3/core/simulator/entity/positional_entity.h>
19 #include <argos3/core/utility/math/vector3.h>
20 #include <argos3/core/simulator/space/positional_indices/space_hash.h>
21 #include <argos3/core/simulator/space/positional_indices/grid.h>
22 
23 namespace argos {
24 
26 
27  public:
28 
29  ENABLE_VTABLE();
30 
31  typedef std::vector<CRABEquippedEntity*> TVector;
33 
34  public:
35 
37 
39  const std::string& str_id,
40  size_t un_msg_size,
41  Real f_range,
42  SAnchor& s_anchor,
43  CEmbodiedEntity& c_entity_body,
44  const CVector3& c_position = CVector3(),
45  const CQuaternion& c_orientation = CQuaternion());
46 
47  virtual void Init(TConfigurationNode& t_tree);
48 
49  virtual ~CRABEquippedEntity() {}
50 
51  virtual void Reset();
52 
53  virtual void Enable();
54 
55  virtual void Disable();
56 
57  virtual void Update();
58 
60  return *m_pcEntityBody;
61  }
62 
63  inline size_t GetMsgSize() const {
64  return m_cData.Size();
65  }
66 
67  inline CByteArray& GetData() {
68  return m_cData;
69  }
70 
71  void SetData(const CByteArray& c_data);
72 
73  void ClearData();
74 
75  inline Real GetRange() const {
76  return m_fRange;
77  }
78 
79  inline void SetRange(Real f_range) {
80  m_fRange = f_range;
81  }
82 
83  inline const SAnchor& GetAnchor() const {
84  return *m_psAnchor;
85  }
86 
87  virtual std::string GetTypeDescription() const {
88  return "rab";
89  }
90 
91  protected:
92 
99 
100  };
101 
102  /****************************************/
103  /****************************************/
104 
105  class CRABEquippedEntitySpaceHashUpdater : public CSpaceHashUpdater<CRABEquippedEntity> {
106 
107  public:
108 
109  virtual void operator()(CAbstractSpaceHash<CRABEquippedEntity>& c_space_hash,
110  CRABEquippedEntity& c_element);
111 
112  private:
113 
114  SInt32 m_nCenterI, m_nCenterJ, m_nCenterK;
115 
116  };
117 
118  /****************************************/
119  /****************************************/
120 
121  class CRABEquippedEntityGridCellUpdater : public CGrid<CRABEquippedEntity>::CCellOperation {
122 
123  public:
124 
126 
127  virtual bool operator()(SInt32 n_i,
128  SInt32 n_j,
129  SInt32 n_k,
131 
132  void SetEntity(CRABEquippedEntity& c_entity);
133 
134  private:
135 
136  CGrid<CRABEquippedEntity>& m_cGrid;
137  CRABEquippedEntity* m_pcEntity;
138  };
139 
140  class CRABEquippedEntityGridEntityUpdater : public CGrid<CRABEquippedEntity>::COperation {
141 
142  public:
143 
145  virtual bool operator()(CRABEquippedEntity& c_entity);
146 
147  private:
148 
149  CGrid<CRABEquippedEntity>& m_cGrid;
150  CRABEquippedEntityGridCellUpdater m_cCellUpdater;
151  };
152 
153  /****************************************/
154  /****************************************/
155 
156 }
157 
158 #endif
argos::CAbstractSpaceHash
The abstract definition of a space hash.
Definition: space_hash.h:34
argos::CRABEquippedEntity::Enable
virtual void Enable()
Definition: rab_equipped_entity.cpp:129
argos::CRABEquippedEntityGridCellUpdater::SetEntity
void SetEntity(CRABEquippedEntity &c_entity)
Definition: rab_equipped_entity.cpp:333
argos::CRABEquippedEntityGridCellUpdater::operator()
virtual bool operator()(SInt32 n_i, SInt32 n_j, SInt32 n_k, CGrid< CRABEquippedEntity >::SCell &s_cell)
Definition: rab_equipped_entity.cpp:323
argos::CRABEquippedEntitySpaceHashUpdater::operator()
virtual void operator()(CAbstractSpaceHash< CRABEquippedEntity > &c_space_hash, CRABEquippedEntity &c_element)
Updates the necessary cells of a space hash.
Definition: rab_equipped_entity.cpp:162
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::CGrid
Definition: grid.h:12
argos::CRABEquippedEntity::TSet
CSet< CRABEquippedEntity * > TSet
Definition: rab_equipped_entity.h:32
argos::CComposableEntity
Basic class for an entity that contains other entities.
Definition: composable_entity.h:32
argos::CRABEquippedEntity::SetRange
void SetRange(Real f_range)
Definition: rab_equipped_entity.h:79
argos::CEmbodiedEntity
This entity is a link to a body in the physics engine.
Definition: embodied_entity.h:48
argos::TConfigurationNode
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
Definition: argos_configuration.h:27
argos::CRABEquippedEntity::GetRange
Real GetRange() const
Definition: rab_equipped_entity.h:75
argos::CSpaceHashUpdater
Defines the basic cell updater of the space hash.
Definition: space_hash.h:269
argos::CRABEquippedEntity::SetData
void SetData(const CByteArray &c_data)
Definition: rab_equipped_entity.cpp:143
argos::CRABEquippedEntityGridEntityUpdater::CRABEquippedEntityGridEntityUpdater
CRABEquippedEntityGridEntityUpdater(CGrid< CRABEquippedEntity > &c_grid)
Definition: rab_equipped_entity.cpp:337
argos::CRABEquippedEntity::~CRABEquippedEntity
virtual ~CRABEquippedEntity()
Definition: rab_equipped_entity.h:49
argos::CRABEquippedEntity
Definition: rab_equipped_entity.h:25
argos::CByteArray
Byte array utility class.
Definition: byte_array.h:28
argos::CRABEquippedEntity::GetEntityBody
CEmbodiedEntity & GetEntityBody()
Definition: rab_equipped_entity.h:59
argos::CRABEquippedEntity::m_cData
CByteArray m_cData
Definition: rab_equipped_entity.h:96
argos::CQuaternion
Definition: quaternion.h:14
argos::CPositionalEntity
Definition: positional_entity.h:20
argos::CRABEquippedEntityGridCellUpdater
Definition: rab_equipped_entity.h:121
argos::CRABEquippedEntity::m_cPosOffset
CVector3 m_cPosOffset
Definition: rab_equipped_entity.h:94
argos::CRABEquippedEntity::GetData
CByteArray & GetData()
Definition: rab_equipped_entity.h:67
argos::CRABEquippedEntity::Disable
virtual void Disable()
Definition: rab_equipped_entity.cpp:136
argos::CRABEquippedEntity::GetTypeDescription
virtual std::string GetTypeDescription() const
Returns a string label for this class.
Definition: rab_equipped_entity.h:87
argos::CRABEquippedEntity::ClearData
void ClearData()
Definition: rab_equipped_entity.cpp:155
argos::CRABEquippedEntity::Init
virtual void Init(TConfigurationNode &t_tree)
Initializes the state of the entity from the XML configuration tree.
Definition: rab_equipped_entity.cpp:59
argos::CRABEquippedEntity::GetMsgSize
size_t GetMsgSize() const
Definition: rab_equipped_entity.h:63
argos::SAnchor
An anchor related to the body of an entity.
Definition: physics_model.h:38
argos::CRABEquippedEntity::Update
virtual void Update()
Updates the state of this entity.
Definition: rab_equipped_entity.cpp:111
argos::CRABEquippedEntity::m_psAnchor
SAnchor * m_psAnchor
Definition: rab_equipped_entity.h:93
SInt32
signed int SInt32
32-bit signed integer.
Definition: datatypes.h:93
argos::CRABEquippedEntityGridEntityUpdater::operator()
virtual bool operator()(CRABEquippedEntity &c_entity)
Definition: rab_equipped_entity.cpp:341
argos::CRABEquippedEntity::CRABEquippedEntity
CRABEquippedEntity(CComposableEntity *pc_parent)
Definition: rab_equipped_entity.cpp:19
argos::CGrid::SCell
Definition: grid.h:18
argos::CRABEquippedEntity::GetAnchor
const SAnchor & GetAnchor() const
Definition: rab_equipped_entity.h:83
argos::CRABEquippedEntity::m_cRotOffset
CQuaternion m_cRotOffset
Definition: rab_equipped_entity.h:95
argos::CRABEquippedEntitySpaceHashUpdater
Definition: rab_equipped_entity.h:105
argos::CRABEquippedEntity::ENABLE_VTABLE
ENABLE_VTABLE()
argos::CRABEquippedEntity::Reset
virtual void Reset()
Resets the state of the entity to whatever it was after Init() or the standalone constructor was call...
Definition: rab_equipped_entity.cpp:122
argos::CRABEquippedEntity::TVector
std::vector< CRABEquippedEntity * > TVector
Definition: rab_equipped_entity.h:31
argos::CRABEquippedEntityGridEntityUpdater
Definition: rab_equipped_entity.h:140
argos::CRABEquippedEntity::m_fRange
Real m_fRange
Definition: rab_equipped_entity.h:97
Real
float Real
Collects all ARGoS code.
Definition: datatypes.h:39
argos::CRABEquippedEntityGridCellUpdater::CRABEquippedEntityGridCellUpdater
CRABEquippedEntityGridCellUpdater(CGrid< CRABEquippedEntity > &c_grid)
Definition: rab_equipped_entity.cpp:320
argos::CRABEquippedEntity::m_pcEntityBody
CEmbodiedEntity * m_pcEntityBody
Definition: rab_equipped_entity.h:98
argos::CSet
Defines a very simple double-linked list that stores unique elements.
Definition: set.h:100
argos::CByteArray::Size
size_t Size() const
Returns the current size of the byte array.
Definition: byte_array.h:66