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
Elliptic integrals and functions.
const CwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const DerivedQ > zeta(const EIGEN_CURRENT_STORAGE_BASE_CLASS< DerivedQ > &q) const
void Forward(real lon0, real lat, real lon, real &x, real &y) const
Array< int, Dynamic, 1 > v
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Namespace for GeographicLib.
const double lon0
Header for GeographicLib::EllipticFunction class.
Vector xi
Definition: testPose2.cpp:148
Header for GeographicLib::Constants class.
static const double lon
static const double sigma
void Reverse(real lon0, real x, real y, real &lat, real &lon) const
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 Tue Jul 4 2023 02:40:26