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

◆ gidx_overlaps()

bool gidx_overlaps ( GIDX *  a,
GIDX *  b 
)

Definition at line 393 of file gserialized_gist_nd.c.

394{
395 int i, dims_a, dims_b;
396
397 POSTGIS_DEBUG(5, "entered function");
398
399 if (!a || !b)
400 return false;
401
402 if (gidx_is_unknown(a) || gidx_is_unknown(b))
403 return false;
404
405 dims_a = GIDX_NDIMS(a);
406 dims_b = GIDX_NDIMS(b);
407
408 /* For all shared dimensions min(a) > max(b) and min(b) > max(a)
409 Unshared dimensions do not matter */
410 for (i = 0; i < Min(dims_a, dims_b); i++)
411 {
412 /* If the missing dimension was not padded with -+FLT_MAX */
413 if (GIDX_GET_MAX(a, i) != FLT_MAX && GIDX_GET_MAX(b, i) != FLT_MAX)
414 {
415 if (GIDX_GET_MIN(a, i) > GIDX_GET_MAX(b, i))
416 return false;
417 if (GIDX_GET_MIN(b, i) > GIDX_GET_MAX(a, i))
418 return false;
419 }
420 }
421
422 return true;
423}
bool gidx_is_unknown(const GIDX *a)

References gidx_is_unknown().

Referenced by gserialized_gidx_geog_overlaps(), gserialized_gidx_geom_overlaps(), gserialized_gidx_gidx_overlaps(), gserialized_gist_consistent_internal(), gserialized_gist_consistent_leaf(), gserialized_overlaps(), and gserialized_spgist_leaf_consistent_nd().

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