ArrivalWaypoint.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * @brief Defines a waypoint of a route
  3. * @file types/ArrivalWaypoint.h
  4. * @author Sven Czarnian <devel@svcz.de>
  5. * @copyright Copyright 2020-2021 Sven Czarnian
  6. * @license This project is published under the GNU General Public License v3 (GPLv3)
  7. */
  8. #pragma once
  9. #include <string>
  10. #include <aman/helper/UtcTime.h>
  11. #include <aman/types/GeoCoordinate.h>
  12. namespace aman {
  13. /**
  14. * @brief Describes a waypoint of a route
  15. * @ingroup types
  16. */
  17. class ArrivalWaypoint {
  18. private:
  19. std::string m_name;
  20. GeoCoordinate m_position;
  21. Length m_altitude;
  22. Velocity m_indicatedAirspeed;
  23. UtcTime::Point m_plannedArrivalTime;
  24. public:
  25. /**
  26. * @brief Creates an empty waypoint
  27. */
  28. ArrivalWaypoint() noexcept;
  29. /**
  30. * @brief Creates a waypoint
  31. * @param[in] name The waypoint's name
  32. * @param[in] position The waypoint's position
  33. * @param[in] altitude The planned altitude
  34. * @param[in] indicatedAirspeed The planned IAS
  35. * @param[in] pta The planned time of arrival
  36. */
  37. ArrivalWaypoint(const std::string& name, const GeoCoordinate& position, const Length& altitude,
  38. const Velocity& indicatedAirspeed, const UtcTime::Point& pta);
  39. /**
  40. * @brief Returns the waypoint's name
  41. * @return The name
  42. */
  43. const std::string& name() const noexcept;
  44. /**
  45. * @brief Returns the waypoint's position
  46. * @return The position
  47. */
  48. const GeoCoordinate& position() const noexcept;
  49. /**
  50. * @brief Returns the planned altitude
  51. * @return The planned altitude
  52. */
  53. const Length& altitude() const noexcept;
  54. /**
  55. * @brief Returns the indicated airspeed
  56. * @return The indicated airspeed
  57. */
  58. const Velocity& indicatedAirspeed() const noexcept;
  59. /**
  60. * @brief Returns the planned arrival time
  61. * @return The planned arrival time
  62. */
  63. const UtcTime::Point& plannedArrivalTime() const noexcept;
  64. };
  65. }