Definition at line 1298 of file lwgeodetic.c.
1299{
1300 int steps = 1000000;
1301 int i;
1302 double dx, dy, dz;
1305
1306
1308 {
1309 LWDEBUG(4,
"edge is zero length. returning");
1315 }
1316
1317
1318
1320 {
1321 LWDEBUG(4,
"edge is antipodal. setting to maximum size box, and returning");
1325 }
1326
1327
1328
1331 dx = (end.
x - start.
x)/steps;
1332 dy = (end.
y - start.
y)/steps;
1333 dz = (end.
z - start.
z)/steps;
1334 p = start;
1338 for ( i = 0; i < steps; i++ )
1339 {
1343 pn = p;
1346 }
1348}
int gbox_merge_point3d(const POINT3D *p, GBOX *gbox)
Update the GBOX to be large enough to include itself and the new point.
int gbox_init_point3d(const POINT3D *p, GBOX *gbox)
Initialize a GBOX using the values of the point.
void normalize(POINT3D *p)
Normalize to a unit vector.
double sphere_distance(const GEOGRAPHIC_POINT *s, const GEOGRAPHIC_POINT *e)
Given two points on a unit sphere, calculate their distance apart in radians.
void geog2cart(const GEOGRAPHIC_POINT *g, POINT3D *p)
Convert spherical coordinates to cartesian coordinates on unit sphere.
#define LWDEBUG(level, msg)
static double distance(double x1, double y1, double x2, double y2)
References distance(), GEOGRAPHIC_EDGE::end, FP_EQUALS, FP_IS_ZERO, gbox_init_point3d(), gbox_merge_point3d(), geog2cart(), LW_SUCCESS, LWDEBUG, normalize(), sphere_distance(), GEOGRAPHIC_EDGE::start, POINT3D::x, GBOX::xmax, GBOX::xmin, POINT3D::y, GBOX::ymax, GBOX::ymin, POINT3D::z, GBOX::zmax, and GBOX::zmin.