PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lwgeom_mindistance3d_tolerance()

double lwgeom_mindistance3d_tolerance ( const LWGEOM lw1,
const LWGEOM lw2,
double  tolerance 
)
extern

Function handling 3d min distance calculations and dwithin calculations.

The difference is just the tolerance.

Definition at line 476 of file measures3d.c.

477{
478 assert(tolerance >= 0);
479 if (!lwgeom_has_z(lw1) || !lwgeom_has_z(lw2))
480 {
481 lwnotice(
482 "One or both of the geometries is missing z-value. The unknown z-value will be regarded as \"any value\"");
483
484 return lwgeom_mindistance2d_tolerance(lw1, lw2, tolerance);
485 }
486 DISTPTS3D thedl;
487 thedl.mode = DIST_MIN;
488 thedl.distance = DBL_MAX;
489 thedl.tolerance = tolerance;
490
491 if (lw_dist3d_recursive(lw1, lw2, &thedl))
492 {
493 if (thedl.distance <= tolerance)
494 return thedl.distance;
496 return 0;
497
498 return thedl.distance;
499 }
500
501 /* should never get here. all cases ought to be error handled earlier */
502 lwerror("Some unspecified error.");
503 return DBL_MAX;
504}
int lwgeom_has_z(const LWGEOM *geom)
Return LW_TRUE if geometry has Z ordinates.
Definition lwgeom.c:962
double lwgeom_mindistance2d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance)
Function handling min distance calculations and dwithin calculations.
Definition measures.c:222
void lwnotice(const char *fmt,...) __attribute__((format(printf
Write a notice out to the notice handler.
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static int lwgeom_solid_contains_lwgeom(const LWGEOM *solid, const LWGEOM *g)
Definition measures3d.c:382
int lw_dist3d_recursive(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl)
This is a recursive function delivering every possible combination of subgeometries.
Definition measures3d.c:519
#define DIST_MIN
Definition measures.h:44
double distance
Definition measures3d.h:40
double tolerance
Definition measures3d.h:47
Structure used in distance-calculations.
Definition measures3d.h:39

References DIST_MIN, DISTPTS3D::distance, lw_dist3d_recursive(), lwerror(), lwgeom_has_z(), lwgeom_mindistance2d_tolerance(), lwgeom_solid_contains_lwgeom(), lwnotice(), DISTPTS3D::mode, and DISTPTS3D::tolerance.

Referenced by LWGEOM_dwithin3d(), lwgeom_mindistance3d(), and ST_3DIntersects().

Here is the call graph for this function:
Here is the caller graph for this function: