/* * @brief Defines a waypoint of a route * @file types/ArrivalWaypoint.h * @author Sven Czarnian * @copyright Copyright 2020-2021 Sven Czarnian * @license This project is published under the GNU General Public License v3 (GPLv3) */ #pragma once #include #include #include namespace aman { /** * @brief Describes a waypoint of a route * @ingroup types */ class ArrivalWaypoint { private: std::string m_name; GeoCoordinate m_position; Length m_altitude; Velocity m_indicatedAirspeed; UtcTime::Point m_plannedArrivalTime; public: /** * @brief Creates an empty waypoint */ ArrivalWaypoint() noexcept; /** * @brief Creates a waypoint * @param[in] name The waypoint's name * @param[in] position The waypoint's position * @param[in] altitude The planned altitude * @param[in] indicatedAirspeed The planned IAS * @param[in] pta The planned time of arrival */ ArrivalWaypoint(const std::string& name, const GeoCoordinate& position, const Length& altitude, const Velocity& indicatedAirspeed, const UtcTime::Point& pta); /** * @brief Returns the waypoint's name * @return The name */ const std::string& name() const noexcept; /** * @brief Returns the waypoint's position * @return The position */ const GeoCoordinate& position() const noexcept; /** * @brief Returns the planned altitude * @return The planned altitude */ const Length& altitude() const noexcept; /** * @brief Returns the indicated airspeed * @return The indicated airspeed */ const Velocity& indicatedAirspeed() const noexcept; /** * @brief Returns the planned arrival time * @return The planned arrival time */ const UtcTime::Point& plannedArrivalTime() const noexcept; }; }