|
MobilityDB
1.0
|
Functions for spatiotemporal bounding boxes. More...
#include "point/stbox.h"#include <assert.h>#include <utils/builtins.h>#include "general/period.h"#include "general/timestampset.h"#include "general/periodset.h"#include "general/temporal_util.h"#include "general/tnumber_mathfuncs.h"#include "point/tpoint.h"#include "point/tpoint_parser.h"#include "point/tpoint_spatialfuncs.h"
Macros | |
| #define | MAXSTBOXLEN 256 |
Functions | |
| STBOX * | stbox_make (bool hasx, bool hasz, bool hast, bool geodetic, int32 srid, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, TimestampTz tmin, TimestampTz tmax) |
| Constructs a newly allocated spatiotemporal box. More... | |
| void | stbox_set (STBOX *box, bool hasx, bool hasz, bool hast, bool geodetic, int32 srid, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, TimestampTz tmin, TimestampTz tmax) |
| Set the spatiotemporal box from the argument values. More... | |
| STBOX * | stbox_copy (const STBOX *box) |
| Returns a copy of the spatiotemporal box. More... | |
| void | stbox_expand (STBOX *box1, const STBOX *box2) |
| Expand the first spatiotemporal box with the second one. More... | |
| void | stbox_shift_tscale (STBOX *box, const Interval *start, const Interval *duration) |
| Shift and/or scale the time span of the spatiotemporal box by the interval. More... | |
| GBOX * | gbox_make (bool hasz, bool hasm, bool geodetic, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) |
| Constructs a newly allocated GBOX. More... | |
| void | ensure_has_X_stbox (const STBOX *box) |
| Ensure that the temporal value has XY dimension. More... | |
| void | ensure_has_T_stbox (const STBOX *box) |
| Ensure that the temporal value has T dimension. More... | |
| PGDLLEXPORT Datum | stbox_in (PG_FUNCTION_ARGS) |
| Input function for spatiotemporal boxes. More... | |
| static char * | stbox_to_string (const STBOX *box) |
| Returns the string representation of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_out (PG_FUNCTION_ARGS) |
| Output function for spatiotemporal boxes. More... | |
| static Datum | stbox_constructor1 (FunctionCallInfo fcinfo, bool hasx, bool hasz, bool hast, bool geodetic) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | stbox_constructor_t (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | stbox_constructor (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | stbox_constructor_z (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | stbox_constructor_zt (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | geodstbox_constructor_t (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | geodstbox_constructor (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | geodstbox_constructor_z (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| PGDLLEXPORT Datum | geodstbox_constructor_zt (PG_FUNCTION_ARGS) |
| Construct a spatiotemporal box from the arguments. More... | |
| GBOX * | stbox_to_gbox (const STBOX *box) |
| Cast the spatiotemporal box as a GBOX value for PostGIS. More... | |
| PGDLLEXPORT Datum | stbox_to_period (PG_FUNCTION_ARGS) |
| Cast the spatiotemporal box as a period. More... | |
| PGDLLEXPORT Datum | stbox_to_box2d (PG_FUNCTION_ARGS) |
| Cast the spatiotemporal box as a GBOX value for PostGIS. More... | |
| BOX3D * | stbox_to_box3d_internal (const STBOX *box) |
| PGDLLEXPORT Datum | stbox_to_box3d (PG_FUNCTION_ARGS) |
| Cast the spatiotemporal box as a BOX3D value for PostGIS. More... | |
| PGDLLEXPORT Datum | box2d_to_stbox (PG_FUNCTION_ARGS) |
| Transform a box2d to a spatiotemporal box. More... | |
| PGDLLEXPORT Datum | box3d_to_stbox (PG_FUNCTION_ARGS) |
| Transform a box3d to a spatiotemporal box. More... | |
| bool | geo_to_stbox_internal (STBOX *box, const GSERIALIZED *gs) |
| Transform a geometry/geography to a spatiotemporal box (internal function) More... | |
| PGDLLEXPORT Datum | geo_to_stbox (PG_FUNCTION_ARGS) |
| Transform a geometry/geography to a spatiotemporal box. More... | |
| void | timestamp_to_stbox_internal (STBOX *box, TimestampTz t) |
| Transform a timestampt to a spatiotemporal box (internal function) More... | |
| PGDLLEXPORT Datum | timestamp_to_stbox (PG_FUNCTION_ARGS) |
| Transform a timestampt to a spatiotemporal box. More... | |
| void | timestampset_to_stbox_internal (STBOX *box, const TimestampSet *ts) |
| Transform a timestamp set to a spatiotemporal box (internal function) More... | |
| PGDLLEXPORT Datum | timestampset_to_stbox (PG_FUNCTION_ARGS) |
| Transform a timestamp set to a spatiotemporal box. More... | |
| void | period_to_stbox_internal (STBOX *box, const Period *p) |
| Transform a period to a spatiotemporal box (internal function) More... | |
| PGDLLEXPORT Datum | period_to_stbox (PG_FUNCTION_ARGS) |
| Transform a period to a spatiotemporal box. More... | |
| void | periodset_to_stbox_internal (STBOX *box, const PeriodSet *ps) |
| Transform a period set to a spatiotemporal box (internal function) More... | |
| PGDLLEXPORT Datum | periodset_to_stbox (PG_FUNCTION_ARGS) |
| Transform a period set to a spatiotemporal box. More... | |
| PGDLLEXPORT Datum | geo_timestamp_to_stbox (PG_FUNCTION_ARGS) |
| Transform a geometry/geography and a timestamp to a spatiotemporal box. More... | |
| PGDLLEXPORT Datum | geo_period_to_stbox (PG_FUNCTION_ARGS) |
| Transform a geometry/geography and a period to a spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_hasx (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal box has X dimension. More... | |
| PGDLLEXPORT Datum | stbox_hasz (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal box has Z dimension. More... | |
| PGDLLEXPORT Datum | stbox_hast (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal box has T dimension. More... | |
| PGDLLEXPORT Datum | stbox_isgeodetic (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal box is geodetic. More... | |
| PGDLLEXPORT Datum | stbox_xmin (PG_FUNCTION_ARGS) |
| Returns the minimum X value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_xmax (PG_FUNCTION_ARGS) |
| Returns the maximum X value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_ymin (PG_FUNCTION_ARGS) |
| Returns the minimum Y value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_ymax (PG_FUNCTION_ARGS) |
| Returns the maximum Y value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_zmin (PG_FUNCTION_ARGS) |
| Returns the minimum Z value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_zmax (PG_FUNCTION_ARGS) |
| Returns the maximum Z value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_tmin (PG_FUNCTION_ARGS) |
| Returns the minimum timestamp value of the spatiotemporal box. More... | |
| PGDLLEXPORT Datum | stbox_tmax (PG_FUNCTION_ARGS) |
| Returns the maximum timestamp value of the spatiotemporal box. More... | |
| STBOX * | stbox_expand_spatial_internal (STBOX *box, double d) |
| Expand the spatial dimension of the spatiotemporal box with the double value (internal function) More... | |
| PGDLLEXPORT Datum | stbox_expand_spatial (PG_FUNCTION_ARGS) |
| Expand the spatial dimension of the spatiotemporal box with the double value. More... | |
| STBOX * | stbox_expand_temporal_internal (STBOX *box, Datum interval) |
| Expand the temporal dimension of the spatiotemporal box with the interval value (internal function) More... | |
| PGDLLEXPORT Datum | stbox_expand_temporal (PG_FUNCTION_ARGS) |
| Expand the temporal dimension of the spatiotemporal box with the interval value. More... | |
| PGDLLEXPORT Datum | stbox_set_precision (PG_FUNCTION_ARGS) |
| Sets the precision of the coordinates of the spatiotemporal box. More... | |
| static void | stbox_stbox_flags (const STBOX *box1, const STBOX *box2, bool *hasx, bool *hasz, bool *hast, bool *geodetic) |
| Set the ouput variables with the values of the flags of the boxes. More... | |
| static void | topo_stbox_stbox_init (const STBOX *box1, const STBOX *box2, bool *hasx, bool *hasz, bool *hast, bool *geodetic) |
| Verify the conditions and set the ouput variables with the values of the flags of the boxes. More... | |
| bool | contains_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box contains the second one (internal function) More... | |
| PGDLLEXPORT Datum | contains_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box contains the second one. More... | |
| bool | contained_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is contained by the second one (internal function) More... | |
| PGDLLEXPORT Datum | contained_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is contained by the second one. More... | |
| bool | overlaps_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the spatiotemporal boxes overlap (internal function) More... | |
| PGDLLEXPORT Datum | overlaps_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal boxes overlap. More... | |
| bool | same_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the spatiotemporal boxes are equal on the common dimensions (internal function) More... | |
| PGDLLEXPORT Datum | same_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal boxes are equal on the common dimensions. More... | |
| bool | adjacent_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the spatiotemporal boxes are adjacent (internal function) More... | |
| PGDLLEXPORT Datum | adjacent_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the spatiotemporal boxes are adjacent. More... | |
| static void | pos_stbox_stbox_test (const STBOX *box1, const STBOX *box2) |
| Verify the conditions for a position operator. More... | |
| bool | left_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly to the left of the second one (internal function) More... | |
| PGDLLEXPORT Datum | left_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly to the left of the second one. More... | |
| bool | overleft_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box does not extend to the right of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overleft_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box does not extend to the right of the second one. More... | |
| bool | right_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly to the right of the second one (internal function) More... | |
| PGDLLEXPORT Datum | right_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly to the right of the second one. More... | |
| bool | overright_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatio temporal box does not extend to the left of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overright_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatio temporal box does not extend to the left of the second one. More... | |
| bool | below_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly below of the second one (internal function) More... | |
| PGDLLEXPORT Datum | below_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly below of the second one. More... | |
| bool | overbelow_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box does not extend above of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overbelow_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box does not extend above of the second one. More... | |
| bool | above_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly above of the second one (internal function) More... | |
| PGDLLEXPORT Datum | above_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly above of the second one. More... | |
| bool | overabove_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box does not extend below of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overabove_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box does not extend below of the second one. More... | |
| bool | front_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly in front of the second one (internal function) More... | |
| PGDLLEXPORT Datum | front_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly in front of the second one. More... | |
| bool | overfront_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box does not extend to the back of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overfront_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box does not extend to the back of the second one. More... | |
| bool | back_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly back of the second one (internal function) More... | |
| PGDLLEXPORT Datum | back_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly back of the second one. More... | |
| bool | overback_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box does not extend to the front of the second one (internal function) More... | |
| PGDLLEXPORT Datum | overback_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box does not extend to the front of the second one. More... | |
| bool | before_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly before the second one (internal function) More... | |
| PGDLLEXPORT Datum | before_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly before the second one. More... | |
| bool | overbefore_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first temporal box does not extend after the second one (internal function) More... | |
| PGDLLEXPORT Datum | overbefore_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first temporal box does not extend after the second one. More... | |
| bool | after_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first spatiotemporal box is strictly after the second one (internal function) More... | |
| PGDLLEXPORT Datum | after_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is strictly after the second one. More... | |
| bool | overafter_stbox_stbox_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the first temporal box does not extend before the second one (internal function) More... | |
| PGDLLEXPORT Datum | overafter_stbox_stbox (PG_FUNCTION_ARGS) |
| Returns true if the first temporal box does not extend before the second one. More... | |
| STBOX * | stbox_union_internal (const STBOX *box1, const STBOX *box2, bool strict) |
| Returns the union of the spatiotemporal boxes (internal function) More... | |
| PGDLLEXPORT Datum | stbox_union (PG_FUNCTION_ARGS) |
| Returns the union of the spatiotemporal boxes. More... | |
| STBOX * | stbox_intersection_internal (const STBOX *box1, const STBOX *box2) |
| Returns the intersection of the spatiotemporal boxes (internal function) More... | |
| PGDLLEXPORT Datum | stbox_intersection (PG_FUNCTION_ARGS) |
| Returns the intersection of the spatiotemporal boxes. More... | |
| PGDLLEXPORT Datum | stbox_extent_transfn (PG_FUNCTION_ARGS) |
| Transition function for extent aggregation for boxes. More... | |
| PGDLLEXPORT Datum | stbox_extent_combinefn (PG_FUNCTION_ARGS) |
| Combine function for extent aggregation for boxes. More... | |
| int | stbox_cmp_internal (const STBOX *box1, const STBOX *box2) |
| Returns -1, 0, or 1 depending on whether the first spatiotemporal box is less than, equal, or greater than the second one (internal function) More... | |
| PGDLLEXPORT Datum | stbox_cmp (PG_FUNCTION_ARGS) |
| Returns -1, 0, or 1 depending on whether the first spatiotemporal box is less than, equal, or greater than the second one. More... | |
| PGDLLEXPORT Datum | stbox_lt (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is less than the second one. More... | |
| PGDLLEXPORT Datum | stbox_le (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is less than or equal to the second one. More... | |
| PGDLLEXPORT Datum | stbox_ge (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is greater than or equal to the second one. More... | |
| PGDLLEXPORT Datum | stbox_gt (PG_FUNCTION_ARGS) |
| Returns true if the first spatiotemporal box is greater than the second one. More... | |
| bool | stbox_eq_internal (const STBOX *box1, const STBOX *box2) |
| Returns true if the two spatiotemporal boxes are equal (internal function) More... | |
| PGDLLEXPORT Datum | stbox_eq (PG_FUNCTION_ARGS) |
| Returns true if the two spatiotemporal boxes are equal. More... | |
| PGDLLEXPORT Datum | stbox_ne (PG_FUNCTION_ARGS) |
| Returns true if the two spatiotemporal boxes are different. More... | |
Functions for spatiotemporal bounding boxes.
1.8.13