ci_footbot_base_ground_sensor.h
Go to the documentation of this file.
1 
32 #ifndef CCI_FOOTBOT_BASE_GROUND_SENSOR_H
33 #define CCI_FOOTBOT_BASE_GROUND_SENSOR_H
34 
35 namespace argos {
36  class CCI_FootBotBaseGroundSensor;
37 }
38 
39 #include <argos3/core/control_interface/ci_sensor.h>
40 #include <argos3/core/utility/math/vector2.h>
41 #include <vector>
42 
43 namespace argos {
44 
45  class CCI_FootBotBaseGroundSensor : virtual public CCI_Sensor {
46 
47  public:
48 
49  struct SReading {
52 
54  Value(0.0f) {}
55 
56  SReading(Real f_value,
57  const CVector2& c_offset) :
58  Value(f_value),
59  Offset(c_offset) {}
60  };
61 
62  typedef std::vector<SReading> TReadings;
63 
64  public:
65 
67 
69 
70  const TReadings& GetReadings() const;
71 
72 #ifdef ARGOS_WITH_LUA
73  virtual void CreateLuaState(lua_State* pt_lua_state);
74 
75  virtual void ReadingsToLuaState(lua_State* pt_lua_state);
76 #endif
77 
78  protected:
79 
80  TReadings m_tReadings;
81 
82  };
83 
84  std::ostream& operator<<(std::ostream& c_os,
85  const CCI_FootBotBaseGroundSensor::SReading& s_reading);
86 
87  std::ostream& operator<<(std::ostream& c_os,
88  const CCI_FootBotBaseGroundSensor::TReadings& t_readings);
89 
90 }
91 
92 #endif
std::ostream & operator<<(std::ostream &c_os, const CByteArray &c_byte_array)
Definition: byte_array.cpp:530
float Real
Collects all ARGoS code.
Definition: datatypes.h:39
A 2D vector class.
Definition: vector2.h:25
The basic interface for all sensors.
Definition: ci_sensor.h:34
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
SReading(Real f_value, const CVector2 &c_offset)