60 lines
1.7 KiB
C++

#ifndef GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDE_H
#define GERMANAIRLINESVA_FILE_FSUIPC_FSLONGITUDE_H
#include <cmath>
#include <cstdint>
#include <sstream>
#include <string>
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