10 #if !defined(GEOGRAPHICLIB_ELLIPSOID_HPP)
11 #define GEOGRAPHICLIB_ELLIPSOID_HPP 1
18 namespace GeographicLib {
42 static const int numit_ = 10;
43 static const real stol_;
44 real _a, _f, _f1, _f12, _e2, _e12, _n, _b;
48 static real tand(real x)
throw() {
50 std::abs(x) ==
real(90) ? (x < 0 ?
51 - TransverseMercator::overflow_
52 : TransverseMercator::overflow_) :
53 std::tan(x * Math::degree<real>());
55 static real atand(real x)
throw()
56 {
return std::atan(x) / Math::degree<real>(); }
110 Math::real Volume() const throw()
111 {
return (4 * Math::pi<real>()) *
Math::sq(_a) * _b / 3; }
419 {
return fp / (1 + fp); }
429 {
return f / (1 - f); }
440 {
return 2 * n / (1 + n); }
451 {
return f / (2 - f); }
463 {
return e2 / (std::sqrt(1 - e2) + 1); }
475 {
return f * (2 - f); }
487 {
return ep2 / (std::sqrt(1 + ep2) + 1 + ep2); }
499 {
return f * (2 - f) /
Math::sq(1 - f); }
511 {
return 2 * epp2 / (sqrt((1 - epp2) * (1 + epp2)) + 1 + epp2); }
523 {
return f * (2 - f) / (1 +
Math::sq(1 - f)); }
537 #endif // GEOGRAPHICLIB_ELLIPSOID_HPP
Math::real SecondFlattening() const
#define GEOGRAPHICLIB_EXPORT
Math::real SecondEccentricitySq() const
GeographicLib::Math::real real
static Math::real SecondFlatteningToFlattening(real fp)
Mathematical functions needed by GeographicLib.
Transverse Mercator projection.
Elliptic integrals and functions.
Header for GeographicLib::TransverseMercator class.
static Math::real FlatteningToEccentricitySq(real f)
static Math::real ThirdEccentricitySqToFlattening(real epp2)
Header for GeographicLib::AlbersEqualArea class.
Albers equal area conic projection.
Math::real EccentricitySq() const
static Math::real ThirdFlatteningToFlattening(real n)
static const Ellipsoid WGS84
Math::real MajorRadius() const
Math::real MinorRadius() const
static Math::real FlatteningToThirdEccentricitySq(real f)
Header for GeographicLib::EllipticFunction class.
static Math::real SecondEccentricitySqToFlattening(real ep2)
Properties of an ellipsoid.
static Math::real FlatteningToThirdFlattening(real f)
Header for GeographicLib::Constants class.
static Math::real EccentricitySqToFlattening(real e2)
static Math::real FlatteningToSecondFlattening(real f)
Math::real ThirdFlattening() const
static Math::real FlatteningToSecondEccentricitySq(real f)
Math::real ThirdEccentricitySq() const
Math::real Flattening() const