ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef FOOTBOT_DISTANCE_SCANNER_EQUIPPED_ENTITY_H 00008 #define FOOTBOT_DISTANCE_SCANNER_EQUIPPED_ENTITY_H 00009 00010 namespace argos { 00011 class CFootBotDistanceScannerEquippedEntity; 00012 } 00013 00014 #include <argos3/core/simulator/entity/entity.h> 00015 #include <argos3/core/utility/math/vector3.h> 00016 00017 namespace argos { 00018 00019 class CFootBotDistanceScannerEquippedEntity : public CEntity { 00020 00021 public: 00022 00023 ENABLE_VTABLE(); 00024 00025 enum EMode { 00026 MODE_OFF, 00027 MODE_POSITION_CONTROL, 00028 MODE_SPEED_CONTROL 00029 }; 00030 00031 public: 00032 00033 CFootBotDistanceScannerEquippedEntity(CComposableEntity* pc_parent); 00034 00035 CFootBotDistanceScannerEquippedEntity(CComposableEntity* pc_parent, 00036 const std::string& str_id); 00037 00038 virtual void Reset(); 00039 00040 virtual void Update(); 00041 00042 inline UInt32 GetMode() const { 00043 return m_unMode; 00044 } 00045 00046 inline void SetMode(UInt32 un_mode) { 00047 m_unMode = un_mode; 00048 } 00049 00050 inline const CRadians& GetRotation() const { 00051 return m_cRotation; 00052 } 00053 00054 void SetRotation(const CRadians& c_rotation); 00055 00056 inline Real GetRotationSpeed() const { 00057 return m_fRotationSpeed; 00058 } 00059 00060 inline void SetRotationSpeed(Real f_speed) { 00061 m_fRotationSpeed = f_speed; 00062 } 00063 00064 virtual std::string GetTypeDescription() const { 00065 return "distance_scanner"; 00066 } 00067 00068 private: 00069 00070 UInt32 m_unMode; 00071 CRadians m_cRotation; 00072 Real m_fRotationSpeed; 00073 00074 }; 00075 } 00076 00077 #endif