10 #if !defined(GEOGRAPHICLIB_GEODESICLINEEXACT_HPP) 11 #define GEOGRAPHICLIB_GEODESICLINEEXACT_HPP 1 43 real _a, _f, _b, _c2, _f1, _e2, _salp0, _calp0, _k2,
44 _salp1, _calp1, _ssig1, _csig1, _dn1,
_stau1, _ctau1,
45 _somg1, _comg1, _cchi1,
46 _A4, _B41, _E0, _D0, _H0, _E1, _D1, _H1;
54 real azi1, real salp1, real calp1,
58 real azi1, real salp1, real calp1,
59 unsigned caps,
bool arcmode, real s13_a13);
188 unsigned caps = ALL);
244 real& lat2, real& lon2, real& azi2,
245 real& m12, real& M12, real& M21,
248 return GenPosition(
false, s12,
249 LATITUDE | LONGITUDE | AZIMUTH |
250 REDUCEDLENGTH | GEODESICSCALE | AREA,
251 lat2, lon2, azi2, t, m12, M12, M21, S12);
259 return GenPosition(
false, s12,
260 LATITUDE | LONGITUDE,
261 lat2, lon2, t, t, t, t, t, t);
270 return GenPosition(
false, s12,
271 LATITUDE | LONGITUDE | AZIMUTH,
272 lat2, lon2, azi2, t, t, t, t, t);
279 real& azi2, real& m12)
const {
281 return GenPosition(
false, s12,
282 LATITUDE | LONGITUDE |
283 AZIMUTH | REDUCEDLENGTH,
284 lat2, lon2, azi2, t, m12, t, t, t);
291 real& azi2, real& M12, real& M21)
294 return GenPosition(
false, s12,
295 LATITUDE | LONGITUDE |
296 AZIMUTH | GEODESICSCALE,
297 lat2, lon2, azi2, t, t, M12, M21, t);
304 real& lat2, real& lon2, real& azi2,
305 real& m12, real& M12, real& M21)
308 return GenPosition(
false, s12,
309 LATITUDE | LONGITUDE | AZIMUTH |
310 REDUCEDLENGTH | GEODESICSCALE,
311 lat2, lon2, azi2, t, m12, M12, M21, t);
357 real& s12, real& m12, real& M12, real& M21,
359 GenPosition(
true, a12,
360 LATITUDE | LONGITUDE | AZIMUTH | DISTANCE |
361 REDUCEDLENGTH | GEODESICSCALE | AREA,
362 lat2, lon2, azi2, s12, m12, M12, M21, S12);
371 GenPosition(
true, a12,
372 LATITUDE | LONGITUDE,
373 lat2, lon2, t, t, t, t, t, t);
380 real& lat2, real& lon2, real& azi2)
383 GenPosition(
true, a12,
384 LATITUDE | LONGITUDE | AZIMUTH,
385 lat2, lon2, azi2, t, t, t, t, t);
394 GenPosition(
true, a12,
395 LATITUDE | LONGITUDE | AZIMUTH | DISTANCE,
396 lat2, lon2, azi2, s12, t, t, t, t);
403 real& s12, real& m12)
const {
405 GenPosition(
true, a12,
406 LATITUDE | LONGITUDE | AZIMUTH |
407 DISTANCE | REDUCEDLENGTH,
408 lat2, lon2, azi2, s12, m12, t, t, t);
415 real& s12, real& M12, real& M21)
418 GenPosition(
true, a12,
419 LATITUDE | LONGITUDE | AZIMUTH |
420 DISTANCE | GEODESICSCALE,
421 lat2, lon2, azi2, s12, t, M12, M21, t);
428 real& s12, real& m12, real& M12, real& M21)
431 GenPosition(
true, a12,
432 LATITUDE | LONGITUDE | AZIMUTH |
433 DISTANCE | REDUCEDLENGTH | GEODESICSCALE,
434 lat2, lon2, azi2, s12, m12, M12, M21, t);
500 Math::real GenPosition(
bool arcmode, real s12_a12,
unsigned outmask,
501 real& lat2, real& lon2, real& azi2,
502 real& s12, real& m12, real& M12, real& M21,
519 void SetDistance(real s13);
530 void SetArc(real a13);
543 void GenSetDistance(
bool arcmode, real s13_a13);
552 bool Init()
const {
return _caps != 0
U; }
579 {
if (Init()) { sazi1 = _salp1; cazi1 = _calp1; } }
597 {
if (Init()) { sazi0 = _salp0; cazi0 = _calp0; } }
639 return (_caps & testcaps) == testcaps;
650 {
return Init() ? (arcmode ? _a13 : _s13) :
Math::NaN(); }
667 #endif // GEOGRAPHICLIB_GEODESICLINEEXACT_HPP
Math::real GenDistance(bool arcmode) const
Math::real Azimuth() const
#define GEOGRAPHICLIB_EXPORT
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2, real &s12, real &m12, real &M12, real &M21, real &S12) const
Math::real Position(real s12, real &lat2, real &lon2, real &azi2, real &m12) const
Math::real EquatorialArc() const
Math::real Position(real s12, real &lat2, real &lon2, real &azi2, real &M12, real &M21) const
Math::real Position(real s12, real &lat2, real &lon2, real &azi2, real &m12, real &M12, real &M21) const
Math::real Position(real s12, real &lat2, real &lon2, real &azi2, real &m12, real &M12, real &M21, real &S12) const
Elliptic integrals and functions.
Math::real MajorRadius() const
void g(const string &key, int i)
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2, real &s12, real &m12) const
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2, real &s12, real &M12, real &M21) const
bool Capabilities(unsigned testcaps) const
Math::real Position(real s12, real &lat2, real &lon2) const
static T atan2d(T y, T x)
Namespace for GeographicLib.
Header for GeographicLib::EllipticFunction class.
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2) const
AnnoyingScalar atan2(const AnnoyingScalar &y, const AnnoyingScalar &x)
Exact geodesic calculations.
Header for GeographicLib::GeodesicExact class.
void EquatorialAzimuth(real &sazi0, real &cazi0) const
Math::real Position(real s12, real &lat2, real &lon2, real &azi2) const
Header for GeographicLib::Constants class.
Math::real Latitude() const
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2, real &s12, real &m12, real &M12, real &M21) const
Math::real Longitude() const
Math::real EquatorialAzimuth() const
unsigned Capabilities() const
void ArcPosition(real a12, real &lat2, real &lon2, real &azi2, real &s12) const
void Azimuth(real &sazi1, real &cazi1) const
Math::real Flattening() const
void ArcPosition(real a12, real &lat2, real &lon2) const
Math::real Distance() const