ARGoS  3
A parallel, multi-engine simulator for swarm robotics
rotor_equipped_entity.h
Go to the documentation of this file.
1 
7 #ifndef ROTOR_EQUIPPED_ENTITY_H
8 #define ROTOR_EQUIPPED_ENTITY_H
9 
10 #include <argos3/core/simulator/entity/entity.h>
11 #include <argos3/core/utility/math/vector3.h>
12 
13 namespace argos {
14 
15  class CRotorEquippedEntity : public CEntity {
16 
17  public:
18 
19  ENABLE_VTABLE();
20 
21  public:
22 
24  size_t un_num_rotors);
25 
27  const std::string& str_id,
28  size_t un_num_rotors);
29 
30  virtual ~CRotorEquippedEntity();
31 
32  virtual void Reset();
33 
34  inline size_t GetNumRotors() const {
35  return m_unNumRotors;
36  }
37 
38  void SetRotor(UInt32 un_index,
39  const CVector3& c_position);
40 
41  const CVector3& GetRotorPosition(size_t un_index) const;
42 
43  inline const CVector3* GetRotorPositions() const {
44  return m_pcRotorPositions;
45  }
46 
47  Real GetRotorVelocity(size_t un_index) const;
48 
49  inline const Real* GetRotorVelocities() const {
50  return m_pfRotorVelocities;
51  }
52 
53  void SetVelocities(Real* pf_velocities);
54 
55  virtual std::string GetTypeDescription() const {
56  return "rotors";
57  }
58 
59  private:
60 
61  size_t m_unNumRotors;
62  CVector3* m_pcRotorPositions;
63  Real* m_pfRotorVelocities;
64 
65  };
66 
67 }
68 
69 #endif
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::CComposableEntity
Basic class for an entity that contains other entities.
Definition: composable_entity.h:32
argos::CRotorEquippedEntity::CRotorEquippedEntity
CRotorEquippedEntity(CComposableEntity *pc_parent, size_t un_num_rotors)
Definition: rotor_equipped_entity.cpp:15
argos::CRotorEquippedEntity::SetRotor
void SetRotor(UInt32 un_index, const CVector3 &c_position)
Definition: rotor_equipped_entity.cpp:59
argos::CRotorEquippedEntity::GetNumRotors
size_t GetNumRotors() const
Definition: rotor_equipped_entity.h:34
argos::CRotorEquippedEntity::GetRotorPositions
const CVector3 * GetRotorPositions() const
Definition: rotor_equipped_entity.h:43
argos::CRotorEquippedEntity::GetTypeDescription
virtual std::string GetTypeDescription() const
Returns a string label for this class.
Definition: rotor_equipped_entity.h:55
argos::CRotorEquippedEntity::ENABLE_VTABLE
ENABLE_VTABLE()
argos::CRotorEquippedEntity::SetVelocities
void SetVelocities(Real *pf_velocities)
Definition: rotor_equipped_entity.cpp:96
argos::CRotorEquippedEntity::~CRotorEquippedEntity
virtual ~CRotorEquippedEntity()
Definition: rotor_equipped_entity.cpp:44
argos::CEntity
The basic entity type.
Definition: entity.h:89
argos::CRotorEquippedEntity::Reset
virtual void Reset()
Resets the state of the entity to whatever it was after Init() or the standalone constructor was call...
Definition: rotor_equipped_entity.cpp:52
argos::CRotorEquippedEntity::GetRotorPosition
const CVector3 & GetRotorPosition(size_t un_index) const
Definition: rotor_equipped_entity.cpp:72
UInt32
unsigned int UInt32
32-bit unsigned integer.
Definition: datatypes.h:97
argos::CRotorEquippedEntity
Definition: rotor_equipped_entity.h:15
argos::CRotorEquippedEntity::GetRotorVelocities
const Real * GetRotorVelocities() const
Definition: rotor_equipped_entity.h:49
argos::CRotorEquippedEntity::GetRotorVelocity
Real GetRotorVelocity(size_t un_index) const
Definition: rotor_equipped_entity.cpp:84
Real
float Real
Collects all ARGoS code.
Definition: datatypes.h:39