PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ gserialized_gist_consistent_internal_2d()

static bool gserialized_gist_consistent_internal_2d ( BOX2DF *  key,
BOX2DF *  query,
StrategyNumber  strategy 
)
inlinestatic

Definition at line 990 of file gserialized_gist_2d.c.

991 {
992  bool retval;
993 
994  POSTGIS_DEBUGF(4, "[GIST] internal consistent, strategy [%d], count[%i], query[%s], key[%s]",
995  strategy, g2d_counter_internal++, box2df_to_string(query), box2df_to_string(key) );
996 
997  switch (strategy)
998  {
999 
1000  /* Basic overlaps */
1001  case RTOverlapStrategyNumber:
1002  retval = (bool) box2df_overlaps(key, query);
1003  break;
1004  case RTSameStrategyNumber:
1005  case RTContainsStrategyNumber:
1006  case RTOldContainsStrategyNumber:
1007  retval = (bool) box2df_contains(key, query);
1008  break;
1009  case RTContainedByStrategyNumber:
1010  case RTOldContainedByStrategyNumber:
1011  retval = (bool) box2df_overlaps(key, query);
1012  break;
1013 
1014  /* To one side */
1015  case RTAboveStrategyNumber:
1016  retval = (bool)(!box2df_overbelow(key, query));
1017  break;
1018  case RTBelowStrategyNumber:
1019  retval = (bool)(!box2df_overabove(key, query));
1020  break;
1021  case RTRightStrategyNumber:
1022  retval = (bool)(!box2df_overleft(key, query));
1023  break;
1024  case RTLeftStrategyNumber:
1025  retval = (bool)(!box2df_overright(key, query));
1026  break;
1027 
1028  /* Overlapping to one side */
1029  case RTOverAboveStrategyNumber:
1030  retval = (bool)(!box2df_below(key, query));
1031  break;
1032  case RTOverBelowStrategyNumber:
1033  retval = (bool)(!box2df_above(key, query));
1034  break;
1035  case RTOverRightStrategyNumber:
1036  retval = (bool)(!box2df_left(key, query));
1037  break;
1038  case RTOverLeftStrategyNumber:
1039  retval = (bool)(!box2df_right(key, query));
1040  break;
1041 
1042  default:
1043  retval = false;
1044  }
1045 
1046  return (retval);
1047 }
bool box2df_left(const BOX2DF *a, const BOX2DF *b)
static char * box2df_to_string(const BOX2DF *a)
bool box2df_contains(const BOX2DF *a, const BOX2DF *b)
bool box2df_right(const BOX2DF *a, const BOX2DF *b)
bool box2df_overlaps(const BOX2DF *a, const BOX2DF *b)
bool box2df_above(const BOX2DF *a, const BOX2DF *b)
bool box2df_overbelow(const BOX2DF *a, const BOX2DF *b)
bool box2df_overright(const BOX2DF *a, const BOX2DF *b)
bool box2df_overabove(const BOX2DF *a, const BOX2DF *b)
bool box2df_below(const BOX2DF *a, const BOX2DF *b)
bool box2df_overleft(const BOX2DF *a, const BOX2DF *b)

References box2df_above(), box2df_below(), box2df_contains(), box2df_left(), box2df_overabove(), box2df_overbelow(), box2df_overlaps(), box2df_overleft(), box2df_overright(), box2df_right(), and box2df_to_string().

Referenced by gserialized_gist_consistent_2d().

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