TransverseMercator.hpp
Go to the documentation of this file.
1 
10 #if !defined(GEOGRAPHICLIB_TRANSVERSEMERCATOR_HPP)
11 #define GEOGRAPHICLIB_TRANSVERSEMERCATOR_HPP 1
12 
14 
15 #if !defined(GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER)
16 
20 # define GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER \
21  (GEOGRAPHICLIB_PRECISION == 2 ? 6 : \
22  (GEOGRAPHICLIB_PRECISION == 1 ? 4 : 8))
23 #endif
24 
25 namespace GeographicLib {
26 
94  private:
95  typedef Math::real real;
96  static const int maxpow_ = GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER;
97  static const int numit_ = 5;
98  real _a, _f, _k0, _e2, _es, _e2m, _c, _n;
99  // _alp[0] and _bet[0] unused
100  real _a1, _b1, _alp[maxpow_ + 1], _bet[maxpow_ + 1];
101  friend class Ellipsoid; // For access to taupf, tauf.
102  public:
103 
114  TransverseMercator(real a, real f, real k0);
115 
130  void Forward(real lon0, real lat, real lon,
131  real& x, real& y, real& gamma, real& k) const;
132 
147  void Reverse(real lon0, real x, real y,
148  real& lat, real& lon, real& gamma, real& k) const;
149 
153  void Forward(real lon0, real lat, real lon,
154  real& x, real& y) const {
155  real gamma, k;
156  Forward(lon0, lat, lon, x, y, gamma, k);
157  }
158 
162  void Reverse(real lon0, real x, real y,
163  real& lat, real& lon) const {
164  real gamma, k;
165  Reverse(lon0, x, y, lat, lon, gamma, k);
166  }
167 
170 
175  Math::real MajorRadius() const { return _a; }
176 
181  Math::real Flattening() const { return _f; }
182 
187  Math::real CentralScale() const { return _k0; }
189 
195  static const TransverseMercator& UTM();
196  };
197 
198 } // namespace GeographicLib
199 
200 #endif // GEOGRAPHICLIB_TRANSVERSEMERCATOR_HPP
#define GEOGRAPHICLIB_EXPORT
Definition: Constants.hpp:91
Scalar * y
static const double lat
Transverse Mercator projection.
Array33i a
void Forward(real lon0, real lat, real lon, real &x, real &y) const
void Reverse(real lon0, real x, real y, real &lat, real &lon) const
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
#define GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER
Properties of an ellipsoid.
Definition: Ellipsoid.hpp:39
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