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

◆ gserialized_gist_consistent_internal_2d()

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

Definition at line 1009 of file gserialized_gist_2d.c.

1010{
1011 bool retval;
1012
1013 POSTGIS_DEBUGF(4, "[GIST] internal consistent, strategy [%d], count[%i], query[%s], key[%s]",
1014 strategy, g2d_counter_internal++, box2df_to_string(query), box2df_to_string(key) );
1015
1016 switch (strategy)
1017 {
1018
1019 /* Basic overlaps */
1020 case RTOverlapStrategyNumber:
1021 retval = (bool) box2df_overlaps(key, query);
1022 break;
1023 case RTSameStrategyNumber:
1024 case RTContainsStrategyNumber:
1025 case RTOldContainsStrategyNumber:
1026 retval = (bool) box2df_contains(key, query);
1027 break;
1028 case RTContainedByStrategyNumber:
1029 case RTOldContainedByStrategyNumber:
1030 retval = (bool) box2df_overlaps(key, query);
1031 break;
1032
1033 /* To one side */
1034 case RTAboveStrategyNumber:
1035 retval = (bool)(!box2df_overbelow(key, query));
1036 break;
1037 case RTBelowStrategyNumber:
1038 retval = (bool)(!box2df_overabove(key, query));
1039 break;
1040 case RTRightStrategyNumber:
1041 retval = (bool)(!box2df_overleft(key, query));
1042 break;
1043 case RTLeftStrategyNumber:
1044 retval = (bool)(!box2df_overright(key, query));
1045 break;
1046
1047 /* Overlapping to one side */
1048 case RTOverAboveStrategyNumber:
1049 retval = (bool)(!box2df_below(key, query));
1050 break;
1051 case RTOverBelowStrategyNumber:
1052 retval = (bool)(!box2df_above(key, query));
1053 break;
1054 case RTOverRightStrategyNumber:
1055 retval = (bool)(!box2df_left(key, query));
1056 break;
1057 case RTOverLeftStrategyNumber:
1058 retval = (bool)(!box2df_right(key, query));
1059 break;
1060
1061 default:
1062 retval = false;
1063 }
1064
1065 return (retval);
1066}
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: