10#if !defined(GEOGRAPHICLIB_ELLIPSOID3_HPP)
11#define GEOGRAPHICLIB_ELLIPSOID3_HPP 1
88 using vec3 = std::array<Math::real, 3>;
96 static void normvec(
vec3& R) {
99 R[0] /= h; R[1] /= h; R[2] /= h;
101 static void Flip(
ang& bet,
ang& omg,
ang& alp) {
107 real _e2, _k2, _kp2, _k, _kp;
108 bool _oblate, _prolate, _biaxial;
109 void cart2toellipint(vec3 R,
ang& bet,
ang& omg, vec3 axes)
const;
113 real k()
const {
return _k; }
117 real kp()
const {
return _kp; }
123 bool oblate()
const {
return _oblate; }
129 bool prolate()
const {
return _prolate; }
133 bool biaxial()
const {
return _biaxial; }
182 real
a()
const {
return _a; }
186 real
b()
const {
return _b; }
190 real
c()
const {
return _c; }
194 real
e2()
const {
return _e2; }
198 real
k2()
const {
return _k2; }
202 real
kp2()
const {
return _kp2; }
216 void Norm(vec3& R)
const;
227 void Norm(vec3& R, vec3& V)
const;
251 bool flip = alt ? signbit(omg.
s()) : signbit(bet.
c());
271 bool flip = alt ? signbit(omg.
s()) : signbit(bet.
c());
292 void cart2toellip(vec3 R,
Angle& bet,
Angle& omg)
const;
306 void cart2toellip(vec3 R, vec3 V,
324 vec3 V,
Angle& alp)
const;
332 void elliptocart2(
Angle bet,
Angle omg, vec3& R)
const;
343 vec3& R, vec3& V)
const;
Header for the GeographicLib::AngleT class.
Header for GeographicLib::Constants class.
#define GEOGRAPHICLIB_EXPORT
GeographicLib::Math::real real
AngleT & reflect(bool flips, bool flipc=false, bool swapp=false)
static T hypot3(T x, T y, T z)
Transformations between Cartesian and triaxial coordinates.
static bool AngNorm(Angle &bet, Angle &omg, Angle &alp, bool alt=false)
static bool AngNorm(Angle &bet, Angle &omg, bool alt=false)
std::array< Math::real, 3 > vec3
The solution of the geodesic problem for a triaxial ellipsoid.
Namespace for operations on triaxial ellipsoids.
Namespace for GeographicLib.
AngleT< Math::real > Angle