00001 00013 #ifndef CCI_FOOTBOT_TURRET_ENCODER_SENSOR_H 00014 #define CCI_FOOTBOT_TURRET_ENCODER_SENSOR_H 00015 00016 namespace argos { 00017 class CCI_FootBotTurretEncoderSensor; 00018 } 00019 00020 #include <argos3/core/control_interface/ci_sensor.h> 00021 #include <argos3/core/utility/math/vector2.h> 00022 00023 namespace argos { 00024 00025 class CCI_FootBotTurretEncoderSensor : virtual public CCI_Sensor { 00026 00027 public: 00028 00029 static const CRange<CRadians> ANGULAR_RANGE; 00030 00031 public: 00032 00033 virtual ~CCI_FootBotTurretEncoderSensor() {} 00034 00035 const CRadians& GetRotation() const; 00036 00037 #ifdef ARGOS_WITH_LUA 00038 virtual void CreateLuaState(lua_State* pt_lua_state); 00039 00040 virtual void ReadingsToLuaState(lua_State* pt_lua_state); 00041 #endif 00042 00043 protected: 00044 00045 CRadians m_cRotation; 00046 00047 friend class CCI_FootBotTurretActuator; 00048 friend class CRealFootBotTurretActuator; 00049 00050 }; 00051 00052 } 00053 00054 #endif