10 #if !defined(GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP)
11 #define GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP 1
16 namespace GeographicLib {
82 static const real tol_;
83 static const real tol1_;
84 static const real tol2_;
85 static const real taytol_;
86 static const real overflow_;
87 static const int numit_ = 10;
88 real _a, _f, _k0, _mu, _mv, _e;
92 static inline real tanx(real x)
throw() {
95 return x >= 0 ? (!(t < 0) ? t : overflow_) : (!(t >= 0) ? t : -overflow_);
98 real taup(real tau)
const throw();
99 real taupinv(real taup)
const throw();
101 void zeta(real u, real snu, real cnu, real dnu,
102 real v, real snv, real cnv, real dnv,
103 real& taup, real& lam)
const throw();
105 void dwdzeta(real u, real snu, real cnu, real dnu,
106 real v, real snv, real cnv, real dnv,
107 real& du, real& dv)
const throw();
109 bool zetainv0(real psi, real lam, real& u, real& v)
const throw();
110 void zetainv(real taup, real lam, real& u, real& v)
const throw();
112 void sigma(real u, real snu, real cnu, real dnu,
113 real v, real snv, real cnv, real dnv,
114 real& xi, real& eta)
const throw();
116 void dwdsigma(real u, real snu, real cnu, real dnu,
117 real v, real snv, real cnv, real dnv,
118 real& du, real& dv)
const throw();
120 bool sigmainv0(real xi, real eta, real& u, real& v)
const throw();
121 void sigmainv(real xi, real eta, real& u, real& v)
const throw();
123 void Scale(real tau, real lam,
124 real snu, real cnu, real dnu,
125 real snv, real cnv, real dnv,
126 real& gamma, real& k)
const throw();
197 void Forward(real lon0, real lat, real lon,
198 real& x, real& y, real& gamma, real& k)
const throw();
215 void Reverse(real lon0, real x, real y,
216 real& lat, real& lon, real& gamma, real& k)
const throw();
223 real& x, real& y)
const throw() {
225 Forward(lon0, lat, lon, x, y, gamma, k);
233 real& lat, real& lon)
const throw() {
235 Reverse(lon0, x, y, lat, lon, gamma, k);
258 Math::real InverseFlattening()
const throw() {
return 1/_f; }
278 #endif // GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP
Math::real Flattening() const
#define GEOGRAPHICLIB_EXPORT
An exact implementation of the transverse Mercator projection.
GeographicLib::Math::real real
Math::real CentralScale() const
Elliptic integrals and functions.
Math::real MajorRadius() const
void Reverse(real lon0, real x, real y, real &lat, real &lon) const
Header for GeographicLib::EllipticFunction class.
void Forward(real lon0, real lat, real lon, real &x, real &y) const
Header for GeographicLib::Constants class.
static const TransverseMercatorExact UTM