// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} /*! * \file NEDPosition.h * \brief Class for a NED position sensor * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS * 7253 * \date 2021/05/20 * \version 4.0 */ #ifndef NEDPOSITION_H #define NEDPOSITION_H #include #include #include #include namespace flair { namespace core { class Matrix; } namespace gui { class TabWidget; class Tab; class DataPlot1D; } } class NEDPosition_impl; namespace flair { namespace sensor { /*! \class NEDPosition * * \brief Class for a NED position sensor. */ class NEDPosition : public core::IODevice { public: /*! * \brief Constructor * * Construct a NEDPosition. * * \param name */ NEDPosition(std::string name); /*! * \brief Destructor * */ ~NEDPosition(void); /*! * \brief Plot tab * * \return plot Tab */ gui::Tab *GetPlotTab(void) const; /*! * \brief Get Position * * \param point output datas */ void GetPosition(core::Vector3Df &point) const; /*! * \brief Get Position * * \param point output datas */ void GetVelocity(core::Vector3Df &point) const; /*! * \brief Output matrix * * Matrix is of type float and as follows: \n * (0,0) x \n * (1,0) y \n * (2,0) z \n * (3,0) vx \n * (4,0) vy \n * (5,0) vz \n * * \return Output matrix */ core::Matrix *Output(void) const; /*! * \brief x plot * * \return x plot */ gui::DataPlot1D *xPlot(void) const; /*! * \brief y plot * * \return y plot */ gui::DataPlot1D *yPlot(void) const; /*! * \brief z plot * * \return z plot */ gui::DataPlot1D *zPlot(void) const; /*! * \brief vx plot * * \return vx plot */ gui::DataPlot1D *vxPlot(void) const; /*! * \brief vy plot * * \return vy plot */ gui::DataPlot1D *vyPlot(void) const; /*! * \brief vz plot * * \return vz plot */ gui::DataPlot1D *vzPlot(void) const; protected: /*! * \brief Set datas and call process update * * \param position position * \param velocity velocity * \param time time */ void SetDatas(const core::Vector3Df &position,const core::Vector3Df &velocity,const core::Time time); private: /*! * \brief Update using provided datas * * Reimplemented from IODevice. * * \param data data from the parent to process */ void UpdateFrom(const core::io_data *data){}; class NEDPosition_impl *pimpl_; }; } // end namespace sensor } // end namespace flair #endif // NEDPOSITION_H