15 # pragma warning (disable: 4701 4127) 23 : eps0_(numeric_limits<real>::epsilon())
24 , eps_(real(0.01) * sqrt(eps0_))
26 , _a(_earth.MajorRadius())
27 , _f(_earth.Flattening())
31 real& x, real& y, real& azi, real& rk)
34 _earth.GenInverse(lat0, lon0, lat, lon,
37 t, azi0, azi, m, M, t, t);
49 real& lat, real& lon, real& azi, real& rk)
54 s = _a * atan(rho/_a);
55 bool little = rho <= _a;
63 int count = numit_, trip = 0;
64 real lat1, lon1, azi1, M;
67 line.Position(s, lat1, lon1, azi1, m, M, t);
72 real ds = little ? (m/M - rho) * M * M : (rho - M/m) * m * m;
75 if (!(abs(ds) >= eps_ * _a))
79 lat = lat1; lon = lon1; azi = azi1; rk = M;
GeodesicLine Line(real lat1, real lon1, real azi1, unsigned caps=ALL) const
static void sincosd(T x, T &sinx, T &cosx)
Header for GeographicLib::Gnomonic class.
void Forward(real lat0, real lon0, real lat, real lon, real &x, real &y, real &azi, real &rk) const
static T atan2d(T y, T x)
Namespace for GeographicLib.
void Reverse(real lat0, real lon0, real x, real y, real &lat, real &lon, real &azi, real &rk) const
Gnomonic(const Geodesic &earth=Geodesic::WGS84())
#define GEOGRAPHICLIB_PANIC