Computes the pole of the great circle disk which is the intersection of the great circle with the line of maximum/minimum gradiant that lies on the great circle plane.
Definition at line 1097 of file lwgeodetic.c.
References cart2geog(), GEOGRAPHIC_POINT::lat, GEOGRAPHIC_POINT::lon, LW_FALSE, LW_SUCCESS, LW_TRUE, LWDEBUG, LWDEBUGF, normalize(), robust_cross_product(), POINT3D::x, POINT3D::y, POINT3D::z, and z_to_latitude().
Referenced by test_clairaut().
1101 LWDEBUG(4,
"entering function");
1106 LWDEBUGF(4,
"unit normal t1 == POINT(%.8g %.8g %.8g)", t1.
x, t1.
y, t1.
z);
1107 LWDEBUGF(4,
"unit normal t2 == POINT(%.8g %.8g %.8g)", t2.
x, t2.
y, t2.
z);
1114 LWDEBUGF(4,
"clairaut top == GPOINT(%.6g %.6g)", g_top->
lat, g_top->
lon);
1115 LWDEBUGF(4,
"clairaut bottom == GPOINT(%.6g %.6g)", g_bottom->
lat, g_bottom->
lon);
void robust_cross_product(const GEOGRAPHIC_POINT *p, const GEOGRAPHIC_POINT *q, POINT3D *a)
Computes the cross product of two vectors using their lat, lng representations.
void normalize(POINT3D *p)
Normalize to a unit vector.
double z_to_latitude(double z, int top)
Used in great circle to compute the pole of the great circle.
void cart2geog(const POINT3D *p, GEOGRAPHIC_POINT *g)
Convert cartesion coordinates on unit sphere to spherical coordinates.
#define LWDEBUG(level, msg)
Point in spherical coordinates on the world.
#define LW_TRUE
Return types for functions with status returns.
#define LWDEBUGF(level, msg,...)