10#if !defined(GEOGRAPHICLIB_ELLIPSOID3_HPP)
11#define GEOGRAPHICLIB_ELLIPSOID3_HPP 1
95 using vec3 = std::array<Math::real, 3>;
103 static void normvec(
vec3& R) {
107 R[0] /= h; R[1] /= h; R[2] /= h;
109 static void Flip(
ang& bet,
ang& omg,
ang& alp) {
115 real _e2, _k2, _kp2, _k, _kp;
116 bool _oblate, _prolate, _biaxial;
117 void cart2toellipint(vec3 R,
ang& bet,
ang& omg, vec3 axes)
const;
121 real k()
const {
return _k; }
125 real kp()
const {
return _kp; }
131 bool oblate()
const {
return _oblate; }
137 bool prolate()
const {
return _prolate; }
141 bool biaxial()
const {
return _biaxial; }
190 real
a()
const {
return _a; }
194 real
b()
const {
return _b; }
198 real
c()
const {
return _c; }
202 real
e2()
const {
return _e2; }
206 real
k2()
const {
return _k2; }
210 real
kp2()
const {
return _kp2; }
224 void Norm(vec3& R)
const;
235 void Norm(vec3& R, vec3& V)
const;
259 bool flip = alt ? signbit(omg.
s()) : signbit(bet.
c());
279 bool flip = alt ? signbit(omg.
s()) : signbit(bet.
c());
300 void cart2toellip(vec3 R,
Angle& bet,
Angle& omg)
const;
314 void cart2toellip(vec3 R, vec3 V,
332 vec3 V,
Angle& alp)
const;
340 void elliptocart2(
Angle bet,
Angle omg, vec3& R)
const;
351 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