PostGIS  3.1.6dev-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 974 of file gserialized_gist_2d.c.

975 {
976  bool retval;
977 
978  POSTGIS_DEBUGF(4, "[GIST] internal consistent, strategy [%d], count[%i], query[%s], key[%s]",
979  strategy, g2d_counter_internal++, box2df_to_string(query), box2df_to_string(key) );
980 
981  switch (strategy)
982  {
983 
984  /* Basic overlaps */
985  case RTOverlapStrategyNumber:
986  retval = (bool) box2df_overlaps(key, query);
987  break;
988  case RTSameStrategyNumber:
989  case RTContainsStrategyNumber:
990  case RTOldContainsStrategyNumber:
991  retval = (bool) box2df_contains(key, query);
992  break;
993  case RTContainedByStrategyNumber:
994  case RTOldContainedByStrategyNumber:
995  retval = (bool) box2df_overlaps(key, query);
996  break;
997 
998  /* To one side */
999  case RTAboveStrategyNumber:
1000  retval = (bool)(!box2df_overbelow(key, query));
1001  break;
1002  case RTBelowStrategyNumber:
1003  retval = (bool)(!box2df_overabove(key, query));
1004  break;
1005  case RTRightStrategyNumber:
1006  retval = (bool)(!box2df_overleft(key, query));
1007  break;
1008  case RTLeftStrategyNumber:
1009  retval = (bool)(!box2df_overright(key, query));
1010  break;
1011 
1012  /* Overlapping to one side */
1013  case RTOverAboveStrategyNumber:
1014  retval = (bool)(!box2df_below(key, query));
1015  break;
1016  case RTOverBelowStrategyNumber:
1017  retval = (bool)(!box2df_above(key, query));
1018  break;
1019  case RTOverRightStrategyNumber:
1020  retval = (bool)(!box2df_left(key, query));
1021  break;
1022  case RTOverLeftStrategyNumber:
1023  retval = (bool)(!box2df_right(key, query));
1024  break;
1025 
1026  default:
1027  retval = false;
1028  }
1029 
1030  return (retval);
1031 }
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: