ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/e-puck/simulator/epuck_entity.h
Go to the documentation of this file.
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