ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef EPUCK_ENTITY_H 00008 #define EPUCK_ENTITY_H 00009 00010 namespace argos { 00011 class CControllableEntity; 00012 class CEmbodiedEntity; 00013 class CEPuckEntity; 00014 class CGroundSensorEquippedEntity; 00015 class CLEDEquippedEntity; 00016 class CLightSensorEquippedEntity; 00017 class CProximitySensorEquippedEntity; 00018 class CRABEquippedEntity; 00019 } 00020 00021 #include <argos3/core/simulator/entity/composable_entity.h> 00022 #include <argos3/plugins/simulator/entities/wheeled_entity.h> 00023 00024 namespace argos { 00025 00026 class CEPuckEntity : public CComposableEntity { 00027 00028 public: 00029 00030 ENABLE_VTABLE(); 00031 00032 public: 00033 00034 CEPuckEntity(); 00035 00036 virtual void Init(TConfigurationNode& t_tree); 00037 virtual void Reset(); 00038 virtual void Destroy(); 00039 00040 virtual void UpdateComponents(); 00041 00042 inline CControllableEntity& GetControllableEntity() { 00043 return *m_pcControllableEntity; 00044 } 00045 00046 inline CEmbodiedEntity& GetEmbodiedEntity() { 00047 return *m_pcEmbodiedEntity; 00048 } 00049 00050 inline CGroundSensorEquippedEntity& GetGroundSensorEquippedEntity() { 00051 return *m_pcGroundSensorEquippedEntity; 00052 } 00053 00054 inline CLEDEquippedEntity& GetLEDEquippedEntity() { 00055 return *m_pcLEDEquippedEntity; 00056 } 00057 00058 inline CLightSensorEquippedEntity& GetLightSensorEquippedEntity() { 00059 return *m_pcLightSensorEquippedEntity; 00060 } 00061 00062 inline CProximitySensorEquippedEntity& GetProximitySensorEquippedEntity() { 00063 return *m_pcProximitySensorEquippedEntity; 00064 } 00065 00066 inline CRABEquippedEntity& GetRABEquippedEntity() { 00067 return *m_pcRABEquippedEntity; 00068 } 00069 00070 inline CWheeledEntity& GetWheeledEntity() { 00071 return *m_pcWheeledEntity; 00072 } 00073 00074 virtual std::string GetTypeDescription() const { 00075 return "epuck"; 00076 } 00077 00078 private: 00079 00080 void SetLEDPosition(); 00081 00082 private: 00083 00084 CControllableEntity* m_pcControllableEntity; 00085 CEmbodiedEntity* m_pcEmbodiedEntity; 00086 CGroundSensorEquippedEntity* m_pcGroundSensorEquippedEntity; 00087 CLEDEquippedEntity* m_pcLEDEquippedEntity; 00088 CLightSensorEquippedEntity* m_pcLightSensorEquippedEntity; 00089 CProximitySensorEquippedEntity* m_pcProximitySensorEquippedEntity; 00090 CRABEquippedEntity* m_pcRABEquippedEntity; 00091 CWheeledEntity* m_pcWheeledEntity; 00092 }; 00093 00094 } 00095 00096 #endif