|
GeographicLib 2.6
|
The direct geodesic problem for a triaxial ellipsoid. More...
#include <GeographicLib/Triaxial/GeodesicLine3.hpp>
Public Member Functions | |
| GeodesicLine3 (const Geodesic3 &tg, Angle bet1, Angle omg1, Angle alp1) | |
| GeodesicLine3 (const Geodesic3 &tg, real bet1, real omg1, real alp1) | |
| void | Position (real s12, Angle &bet2, Angle &omg2, Angle &alp2) const |
| void | Position (real s12, real &bet2, real &omg2, real &alp2, bool unroll=true) const |
| void | SetDistance (real s13) |
| real | Distance () const |
| void | pos1 (Angle &bet1, Angle &omg1, Angle &alp1) const |
| void | pos1 (real &bet1, real &omg1, real &alp1, bool unroll=true) const |
The direct geodesic problem for a triaxial ellipsoid.
This is an implementation of Jacobi's method for finding geodesics on a triaxial ellipsoid (1839).
This class performs the quadrature necessary to evaluate to the integrals for the course and distance equations and it solves the 2 coupled equations to determine the latitude and longitude of the destination. This functionality is used by the Geodesic3 class to solve the inverse geodesic problem.
Example of use:
Geod3Solve is a command-line utility providing access to the functionality of Geodesic3 and GeodesicLine3.
The class experimental::TriaxialGeodesicODE solves the direct geodesic problem by integrating the corresponing ordinary differential equations. This is not part of GeographicLib itself because it used Boost for solving the ODEs and Boost is not a requirement for using GeographicLib.
Definition at line 54 of file GeodesicLine3.hpp.
| GeographicLib::Triaxial::GeodesicLine3::GeodesicLine3 | ( | const Geodesic3 & | tg, |
| Angle | bet1, | ||
| Angle | omg1, | ||
| Angle | alp1 ) |
Constructor for a geodesic line specified at point 1
| [in] | tg | the underlying Geodesic3 object. |
| [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 35 of file GeodesicLine3.cpp.
References GeographicLib::AngleT< T >::round().
| GeographicLib::Triaxial::GeodesicLine3::GeodesicLine3 | ( | const Geodesic3 & | tg, |
| real | bet1, | ||
| real | omg1, | ||
| real | alp1 ) |
Constructor for a geodesic line specified at point 1 in degrees
| [in] | tg | the underlying Geodesic3 object. |
| [in] | bet1 | the ellipsoidal latitude of point 1. |
| [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 49 of file GeodesicLine3.cpp.
| void GeographicLib::Triaxial::GeodesicLine3::Position | ( | real | s12, |
| Angle & | bet2, | ||
| Angle & | omg2, | ||
| Angle & | alp2 ) const |
Find point 2 a given distance from 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 71 of file GeodesicLine3.cpp.
References GeographicLib::AngleT< T >::c(), GeographicLib::AngleT< Math::real >::cardinal(), GeographicLib::AngleT< T >::flipsign(), GeographicLib::AngleT< Math::real >::radians(), GeographicLib::AngleT< T >::rebase(), GeographicLib::AngleT< T >::reflect(), GeographicLib::AngleT< T >::round(), GeographicLib::AngleT< T >::s(), and std::swap().
Referenced by GeographicLib::Triaxial::Geodesic3::Direct(), and Position().
| void GeographicLib::Triaxial::GeodesicLine3::Position | ( | real | s12, |
| real & | bet2, | ||
| real & | omg2, | ||
| real & | alp2, | ||
| bool | unroll = true ) const |
Find point 2 a given distance from 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). |
| [in] | unroll | if true (the default) "unroll" the coordinates; otherwise reduce them to their conventional ranges. |
Definition at line 161 of file GeodesicLine3.cpp.
References GeographicLib::Triaxial::Ellipsoid3::AngNorm(), Position(), and GeographicLib::AngleT< T >::setn().
|
inline |
Define a reference point 3 on the geodesic line
| [in] | s13 | distance from point 1 to point 3. |
Definition at line 540 of file GeodesicLine3.hpp.
|
inline |
Definition at line 544 of file GeodesicLine3.hpp.
| void GeographicLib::Triaxial::GeodesicLine3::pos1 | ( | Angle & | bet1, |
| Angle & | omg1, | ||
| Angle & | alp1 ) const |
Return the coordinates of point 1
| [out] | bet1 | the ellipsoidal latitude of point 1. |
| [out] | omg1 | the ellipsoidal longitude of point 1. |
| [out] | alp1 | the forward azimuth of the geodesic at point 1. |
Definition at line 54 of file GeodesicLine3.cpp.
Referenced by pos1(), and GeographicLib::Triaxial::GeodesicLine3::fline::fics::setquadrant().
| void GeographicLib::Triaxial::GeodesicLine3::pos1 | ( | real & | bet1, |
| real & | omg1, | ||
| real & | alp1, | ||
| bool | unroll = true ) const |
Return the coordinates of point 1 in degrees
| [out] | bet1 | the ellipsoidal latitude of point 1 (in degrees). |
| [out] | omg1 | the ellipsoidal longitude of point 1 (in degrees). |
| [out] | alp1 | the forward azimuth of the geodesic at point 1 (in degrees). |
| [in] | unroll | if true (the default), return the coordinates used to specify this line; otherwise reduce the coordinates for point 1 to their conventional ranges. |
Definition at line 58 of file GeodesicLine3.cpp.
References GeographicLib::Triaxial::Ellipsoid3::AngNorm(), pos1(), and GeographicLib::AngleT< T >::setn().