ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00006 #ifndef CCI_POSITIONING_SENSOR_H 00007 #define CCI_POSITIONING_SENSOR_H 00008 00009 namespace argos { 00010 class CCI_PositioningSensor; 00011 } 00012 00013 #include <argos3/core/control_interface/ci_sensor.h> 00014 #include <argos3/core/utility/math/vector3.h> 00015 #include <argos3/core/utility/math/quaternion.h> 00016 00017 namespace argos { 00018 00019 class CCI_PositioningSensor : public CCI_Sensor { 00020 00021 public: 00022 00023 struct SReading { 00024 CVector3 Position; 00025 CQuaternion Orientation; 00026 }; 00027 00028 public: 00029 00030 virtual ~CCI_PositioningSensor() {} 00031 00032 inline const SReading& GetReading() const { 00033 return m_sReading; 00034 } 00035 00036 #ifdef ARGOS_WITH_LUA 00037 virtual void CreateLuaState(lua_State* pt_lua_state); 00038 00039 virtual void ReadingsToLuaState(lua_State* pt_lua_state); 00040 #endif 00041 00042 protected: 00043 00044 SReading m_sReading; 00045 CRadians m_cAngle; 00046 CVector3 m_cAxis; 00047 00048 }; 00049 00050 } 00051 00052 #endif