#ifndef GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDESPAN_H #define GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDESPAN_H #define _USE_MATH_DEFINES #include #include #include #include namespace germanairlinesva { namespace file { namespace FSUIPC { class FsLongitude; class FsLatitude; class FsLongitudeSpan { private: double span; public: inline FsLongitudeSpan(); inline FsLongitudeSpan(double DecimalDegrees); inline FsLongitudeSpan(std::int32_t Degrees, double DecimalMinutes); inline FsLongitudeSpan(std::int32_t Degrees, std::int32_t Minutes, double DecimalSeconds); inline static FsLongitudeSpan FromFeet(double Feet, const FsLatitude &AtLatitude); inline static FsLongitudeSpan FromNauticalMiles(double NauticalMiles, const FsLatitude &AtLatitude); inline static FsLongitudeSpan FromMetres(double Metres, const FsLatitude &AtLatitude); inline static FsLongitudeSpan BetweenTwoLongitudes(const FsLongitude &Lon1, const FsLongitude &Lon2); inline double DecimalDegrees() const; inline double DecimalMinutes() const; inline double DecimalSeconds() const; inline std::int32_t Degrees() const; inline std::int32_t Minutes() const; inline std::int32_t Seconds() const; inline double TotalMinutes() const; inline double TotalSeconds() const; inline double ToFeet(const FsLatitude &AtLatitude) const; inline double ToNauticalMiles(const FsLatitude &AtLatitude) const; inline double ToMetres(const FsLatitude &AtLatitude) const; inline const std::string to_string(char DetailLevel) const; inline const std::string to_string(); }; } // namespace FSUIPC } // namespace file } // namespace germanairlinesva #endif