TransverseMercatorExact.hpp
Go to the documentation of this file.
1 
10 #if !defined(GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP)
11 #define GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP 1
12 
15 
16 namespace GeographicLib {
17 
84  private:
85  typedef Math::real real;
86  static const int numit_ = 10;
87  real tol_, tol2_, taytol_;
88  real _a, _f, _k0, _mu, _mv, _e;
89  bool _extendp;
91 
92  void zeta(real u, real snu, real cnu, real dnu,
93  real v, real snv, real cnv, real dnv,
94  real& taup, real& lam) const;
95 
96  void dwdzeta(real u, real snu, real cnu, real dnu,
97  real v, real snv, real cnv, real dnv,
98  real& du, real& dv) const;
99 
100  bool zetainv0(real psi, real lam, real& u, real& v) const;
101  void zetainv(real taup, real lam, real& u, real& v) const;
102 
103  void sigma(real u, real snu, real cnu, real dnu,
104  real v, real snv, real cnv, real dnv,
105  real& xi, real& eta) const;
106 
107  void dwdsigma(real u, real snu, real cnu, real dnu,
108  real v, real snv, real cnv, real dnv,
109  real& du, real& dv) const;
110 
111  bool sigmainv0(real xi, real eta, real& u, real& v) const;
112  void sigmainv(real xi, real eta, real& u, real& v) const;
113 
114  void Scale(real tau, real lam,
115  real snu, real cnu, real dnu,
116  real snv, real cnv, real dnv,
117  real& gamma, real& k) const;
118 
119  public:
120 
170  TransverseMercatorExact(real a, real f, real k0, bool extendp = false);
171 
186  void Forward(real lon0, real lat, real lon,
187  real& x, real& y, real& gamma, real& k) const;
188 
203  void Reverse(real lon0, real x, real y,
204  real& lat, real& lon, real& gamma, real& k) const;
205 
210  void Forward(real lon0, real lat, real lon,
211  real& x, real& y) const {
212  real gamma, k;
213  Forward(lon0, lat, lon, x, y, gamma, k);
214  }
215 
220  void Reverse(real lon0, real x, real y,
221  real& lat, real& lon) const {
222  real gamma, k;
223  Reverse(lon0, x, y, lat, lon, gamma, k);
224  }
225 
228 
233  Math::real MajorRadius() const { return _a; }
234 
239  Math::real Flattening() const { return _f; }
240 
245  Math::real CentralScale() const { return _k0; }
247 
253  static const TransverseMercatorExact& UTM();
254  };
255 
256 } // namespace GeographicLib
257 
258 #endif // GEOGRAPHICLIB_TRANSVERSEMERCATOREXACT_HPP
#define GEOGRAPHICLIB_EXPORT
Definition: Constants.hpp:91
Scalar * y
An exact implementation of the transverse Mercator projection.
static const double lat
const CwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const DerivedQ > zeta(const EIGEN_CURRENT_STORAGE_BASE_CLASS< DerivedQ > &q) const
ArrayXcf v
Definition: Cwise_arg.cpp:1
static const double sigma
Elliptic integrals and functions.
void Reverse(real lon0, real x, real y, real &lat, real &lon) const
Array33i a
const mpreal gamma(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition: mpreal.h:2262
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Namespace for GeographicLib.
const double lon0
Header for GeographicLib::EllipticFunction class.
void Forward(real lon0, real lat, real lon, real &x, real &y) const
Vector xi
Definition: testPose2.cpp:150
Header for GeographicLib::Constants class.
static const double lon
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:51:10