#ifndef GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDE_H #define GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDE_H #include #include #include #include namespace germanairlinesva { namespace file { namespace FSUIPC { class FsLongitudeSpan; class FsLongitude { private: double pos; public: inline FsLongitude(); inline FsLongitude(double DecimalDegrees); inline FsLongitude(std::int64_t FSUnits); inline FsLongitude(std::int32_t FSUnits); inline FsLongitude(std::int32_t Degrees, double DecimalMinutes); inline FsLongitude(std::int32_t Degrees, std::int32_t Minutes, double DecimalSeconds); inline long ToFSUnits8() const; inline std::int32_t ToFSUnits4() const; inline double DecimalDegrees() const; inline double DecimalMinutes() const; inline double DecimalSeconds() const; inline std::int32_t Degree() const; inline std::int32_t Minute() const; inline std::int32_t Second() const; inline double UDegrees() const; inline const std::string to_string(bool HemisphereAsText, char DetailLevel) const; inline const std::string to_string() const; inline FsLongitude Add(const FsLongitudeSpan &Distance) const; inline FsLongitude Subtract(const FsLongitudeSpan &Distance) const; inline FsLongitude AddDegrees(double Degrees) const; inline FsLongitude AddMinutes(double Minutes) const; inline FsLongitude AddSeconds(double Seconds) const; }; } // namespace FSUIPC } // namespace file } // namespace germanairlinesva #endif