PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ 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: