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