|
GeographicLib 2.6
|
The solution of the geodesic problem for a triaxial ellipsoid. More...
#include <GeographicLib/Triaxial/Geodesic3.hpp>
Public Member Functions | |
| Geodesic3 (const Ellipsoid3 &t=Ellipsoid3{}) | |
| Geodesic3 (real a, real b, real c) | |
| Geodesic3 (real b, real e2, real k2, real kp2) | |
| const Ellipsoid3 & | t () const |
| GeodesicLine3 | Inverse (Angle bet1, Angle omg1, Angle bet2, Angle omg2, real &s12, Angle &alp1, Angle &alp2) const |
| GeodesicLine3 | Inverse (real bet1, real omg1, real bet2, real omg2, real &s12, real &alp1, real &alp2) const |
| GeodesicLine3 | Direct (Angle bet1, Angle omg1, Angle alp1, real s12, Angle &bet2, Angle &omg2, Angle &alp2) const |
| GeodesicLine3 | Direct (real bet1, real omg1, real alp1, real s12, real &bet2, real &omg2, real &alp2) const |
| GeodesicLine3 | Line (Angle bet1, Angle omg1, Angle alp1) const |
| GeodesicLine3 | Line (real bet1, real omg1, real alp1) const |
| void | umbalt (bool numbalt) |
| bool | umbalt () const |
The solution of the geodesic problem for a triaxial ellipsoid.
This is an implementation of Jacobi's method for finding geodesics on a triaxial ellipsoid (1839). This class offers an interface to the solutions to the direct geodesic problem via the GeodesicLine3 class which contains the meat of Jacobi's direct solution. In addition it provides a solution to the inverse problem which closely parallels the solution for the biaxial problem given by GeodesicExact. For more details see Geodesics on a triaxial ellipsoid.
Data for testing the geodesic routines is availble at Test set of geodesics on a triaxial ellipsoid (2024).
Example of use:
Geod3Solve is a command-line utility providing access to the functionality of Geodesic3 and GeodesicLine3.
Definition at line 65 of file Geodesic3.hpp.
| GeographicLib::Triaxial::Geodesic3::Geodesic3 | ( | const Ellipsoid3 & | t = Ellipsoid3{} | ) |
Constructor for a triaxial ellipsoid defined by Ellipsoid3 object.
| [in] | t | the Ellipsoid3 object. |
Definition at line 19 of file Geodesic3.cpp.
References t().
Referenced by Geodesic3(), and Geodesic3().
| GeographicLib::Triaxial::Geodesic3::Geodesic3 | ( | real | a, |
| real | b, | ||
| real | c ) |
Constructor for a trixial ellipsoid with semi-axes.
| [in] | a | the largest semi-axis. |
| [in] | b | the middle semi-axis. |
| [in] | c | the smallest semi-axis. |
| GeographicErr | if the required ordering is semiaxes is violated. |
The semi-axes must satisfy a ≥ b ≥ c > 0. If a = c (a sphere), then the oblate limit is taken.
Definition at line 25 of file Geodesic3.cpp.
References Geodesic3().
| GeographicLib::Triaxial::Geodesic3::Geodesic3 | ( | real | b, |
| real | e2, | ||
| real | k2, | ||
| real | kp2 ) |
Alternate constructor for a triaxial ellipsoid.
| [in] | b | the middle semi-axis. |
| [in] | e2 | the eccentricity squared \(e^2 = (a^2 - c^2)/b^2\). |
| [in] | k2 | the oblateness parameter squared \(k^2 = (b^2 - c^2) / (a^2 - c^2)\). |
| [in] | kp2 | the prolateness parameter squared \(k'^2= (a^2 - b^2) / (a^2 - c^2)\). |
| GeographicErr | if the required ordering is semiaxes is violated. |
Definition at line 29 of file Geodesic3.cpp.
References Geodesic3().
|
inline |
Definition at line 187 of file Geodesic3.hpp.
Referenced by Geodesic3(), and Inverse().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Inverse | ( | Angle | bet1, |
| Angle | omg1, | ||
| Angle | bet2, | ||
| Angle | omg2, | ||
| real & | s12, | ||
| Angle & | alp1, | ||
| Angle & | alp2 ) const |
Solve the inverse problem
| [in] | bet1 | the ellipsoidal latitude of point 1. |
| [in] | omg1 | the ellipsoidal longitude of point 1. |
| [in] | bet2 | the ellipsoidal latitude of point 2. |
| [in] | omg2 | the ellipsoidal longitude of point 2. |
| [out] | s12 | the shortest distance between the points. |
| [out] | alp1 | the forward azimuth of the geodesic at point 1. |
| [out] | alp2 | the forward azimuth of the geodesic at point 2. |
Definition at line 34 of file Geodesic3.cpp.
References GeographicLib::Triaxial::Ellipsoid3::AngNorm(), GeographicLib::AngleT< T >::base(), GeographicLib::AngleT< T >::c(), GeographicLib::AngleT< Math::real >::cardinal(), GeographicLib::AngleT< Math::real >::eps(), GeographicLib::AngleT< T >::flipsign(), GeographicLib::Math::NaN(), GeographicLib::Math::pi(), GeographicLib::AngleT< T >::radians(), GeographicLib::AngleT< Math::real >::radians(), GeographicLib::AngleT< T >::radians0(), GeographicLib::AngleT< T >::reflect(), GeographicLib::AngleT< T >::round(), GeographicLib::AngleT< T >::s(), GeographicLib::AngleT< T >::setn(), GeographicLib::AngleT< T >::setquadrant(), GeographicLib::Math::sq(), std::swap(), and t().
Referenced by Inverse().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Inverse | ( | real | bet1, |
| real | omg1, | ||
| real | bet2, | ||
| real | omg2, | ||
| real & | s12, | ||
| real & | alp1, | ||
| real & | alp2 ) const |
Solve the inverse problem in degrees
| [in] | bet1 | the ellipsoidal latitude of point 1 (in degrees). |
| [in] | omg1 | the ellipsoidal longitude of point 1 (in degrees). |
| [in] | bet2 | the ellipsoidal latitude of point 2 (in degrees). |
| [in] | omg2 | the ellipsoidal longitude of point 2 (in degrees). |
| [out] | s12 | the shortest distance between the points. |
| [out] | alp1 | the forward azimuth of the geodesic at point 1 (in degrees). |
| [out] | alp2 | the forward azimuth of the geodesic at point 2 (in degrees). |
Definition at line 893 of file Geodesic3.cpp.
References Inverse().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Direct | ( | Angle | bet1, |
| Angle | omg1, | ||
| Angle | alp1, | ||
| real | s12, | ||
| Angle & | bet2, | ||
| Angle & | omg2, | ||
| Angle & | alp2 ) const |
Solve the direct problem
| [in] | bet1 | the ellipsoidal latitude of point 1. |
| [in] | omg1 | the ellipsoidal longitude of point 1. |
| [in] | alp1 | the forward azimuth of the geodesic at point 1. |
| [in] | s12 | the distance from point 1 to point 2. |
| [out] | bet2 | the ellipsoidal latitude of point 2. |
| [out] | omg2 | the ellipsoidal longitude of point 2. |
| [out] | alp2 | the forward azimuth of the geodesic at point 2. |
Definition at line 885 of file Geodesic3.cpp.
References GeographicLib::Triaxial::GeodesicLine3::Position().
Referenced by Direct().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Direct | ( | real | bet1, |
| real | omg1, | ||
| real | alp1, | ||
| real | s12, | ||
| real & | bet2, | ||
| real & | omg2, | ||
| real & | alp2 ) const |
Solve the direct problem in degrees
| [in] | bet1 | the ellipsoidal latitude of point 1 (in degrees). |
| [in] | omg1 | the ellipsoidal longitude of point 1 (in degrees). |
| [in] | alp1 | the forward azimuth of the geodesic at point 1 (in degrees). |
| [in] | s12 | the distance from point 1 to point 2. |
| [out] | bet2 | the ellipsoidal latitude of point 2 (in degrees). |
| [out] | omg2 | the ellipsoidal longitude of point 2 (in degrees). |
| [out] | alp2 | the forward azimuth of the geodesic at point 2 (in degrees). |
Definition at line 906 of file Geodesic3.cpp.
References Direct().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Line | ( | Angle | bet1, |
| Angle | omg1, | ||
| Angle | alp1 ) const |
A geodesic line defined at a starting point
| [in] | bet1 | the ellipsoidal latitude of point 1. |
| [in] | omg1 | the ellipsoidal longitude of point 1. |
| [in] | alp1 | the forward azimuth of the geodesic at point 1. |
Definition at line 881 of file Geodesic3.cpp.
Referenced by Line().
| GeodesicLine3 GeographicLib::Triaxial::Geodesic3::Line | ( | real | bet1, |
| real | omg1, | ||
| real | alp1 ) const |
A geodesic line defined at a starting point specified in degrees
| [in] | bet1 | the ellipsoidal latitude of point 1 (in degrees). |
| [in] | omg1 | the ellipsoidal longitude of point 1 (in degrees). |
| [in] | alp1 | the forward azimuth of the geodesic at point 1 (in degrees). |
Definition at line 902 of file Geodesic3.cpp.
References Line().
|
inline |
Specify the behavior of umbilical geodesics
| [in] | numbalt | the new value of the umbalt flag. |
If umbalt is true (resp. false) then the latitude (resp. longitude) of an umbilical geodesic is the librating coordinate and the longitude (resp. latitude) is the rotating coordinate. This has no effect for biaxial ellipsoids. In this case the latitude (resp. longitude) is always the librating coordinate for oblate (resp. prolate) ellipsoids.
Definition at line 278 of file Geodesic3.hpp.
|
inline |
Definition at line 284 of file Geodesic3.hpp.