ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/sensors/proximity_default_sensor.h
Go to the documentation of this file.
00001 
00007 #ifndef PROXIMITY_DEFAULT_SENSOR_H
00008 #define PROXIMITY_DEFAULT_SENSOR_H
00009 
00010 #include <string>
00011 #include <map>
00012 
00013 namespace argos {
00014    class CProximityDefaultSensor;
00015    class CProximitySensorEquippedEntity;
00016 }
00017 
00018 #include <argos3/plugins/robots/generic/control_interface/ci_proximity_sensor.h>
00019 #include <argos3/core/utility/math/range.h>
00020 #include <argos3/core/utility/math/rng.h>
00021 #include <argos3/core/simulator/space/space.h>
00022 #include <argos3/core/simulator/sensor.h>
00023 
00024 namespace argos {
00025 
00026    class CProximityDefaultSensor : public CSimulatedSensor,
00027                                    public CCI_ProximitySensor {
00028 
00029    public:
00030 
00031       CProximityDefaultSensor();
00032 
00033       virtual ~CProximityDefaultSensor() {}
00034 
00035       virtual void SetRobot(CComposableEntity& c_entity);
00036 
00037       virtual void Init(TConfigurationNode& t_tree);
00038 
00039       virtual void Update();
00040 
00041       virtual void Reset();
00042 
00048       virtual Real CalculateReading(Real f_distance);
00049 
00050    protected:
00051 
00053       CEmbodiedEntity* m_pcEmbodiedEntity;
00054 
00056       CProximitySensorEquippedEntity* m_pcProximityEntity;
00057 
00059       CControllableEntity* m_pcControllableEntity;
00060 
00062       bool m_bShowRays;
00063 
00065       CRandom::CRNG* m_pcRNG;
00066 
00068       bool m_bAddNoise;
00069 
00071       CRange<Real> m_cNoiseRange;
00072 
00074       CSpace& m_cSpace;
00075    };
00076 
00077 }
00078 
00079 #endif