|
MobilityDB 1.3
|
Spatial restriction functions for temporal points. More...
#include <assert.h>#include <postgres.h>#include <utils/float.h>#include <utils/timestamp.h>#include <liblwgeom.h>#include <liblwgeom_internal.h>#include <lwgeodetic.h>#include <meos.h>#include <meos_internal.h>#include <meos_internal_geo.h>#include "temporal/lifting.h"#include "temporal/span.h"#include "temporal/temporal_restrict.h"#include "temporal/tsequence.h"#include "temporal/type_util.h"#include "geo/postgis_funcs.h"#include "geo/tgeo.h"#include "geo/tgeo_spatialfuncs.h"#include "geo/tgeo_spatialrels.h"Functions | |
| bool | clipt (double p, double q, double *t0, double *t1) |
| Clip the paramaters t0 and t1 for the Liang-Barsky clipping algorithm. More... | |
| static int | computeMaxBorderCode (double x, double y, double z, bool hasz, const STBox *box) |
| Compute max border code for a point(x, y, z) More... | |
| static int | computeRegionCode (double x, double y, double z, bool hasz, const STBox *box) |
| Compute region code for a point(x, y, z) More... | |
| static bool | liangBarskyClip (const GSERIALIZED *point1, const GSERIALIZED *point2, const STBox *box, bool hasz, bool border_inc, GSERIALIZED **point3, GSERIALIZED **point4, bool *p3_inc, bool *p4_inc) |
| Clip a line segment using the Liang-Barsky algorithm. More... | |
| static Datum | point_force2d (Datum point, Datum srid) |
| Force a point to be in 2D. More... | |
| Temporal * | tgeo_at_elevation (const Temporal *temp, const Span *s) |
| Return a temporal geo restricted to an elevation span. More... | |
| Temporal * | tgeo_at_geom (const Temporal *temp, const GSERIALIZED *gs) |
| Return a temporal geo restricted to a geometry. More... | |
| Temporal * | tgeo_at_stbox (const Temporal *temp, const STBox *box, bool border_inc) |
| Return a temporal geo restricted to a spatiotemporal box. More... | |
| Temporal * | tgeo_at_value (const Temporal *temp, GSERIALIZED *gs) |
| Return a temporal geo restricted to a geometry/geography. More... | |
| Temporal * | tgeo_minus_elevation (const Temporal *temp, const Span *s) |
| Return a temporal geo restricted to the complement of a geometry. More... | |
| Temporal * | tgeo_minus_geom (const Temporal *temp, const GSERIALIZED *gs) |
| Return a temporal geo restricted to the complement of a geometry. More... | |
| Temporal * | tgeo_minus_stbox (const Temporal *temp, const STBox *box, bool border_inc) |
| Return a temporal geo restricted to the complement of a spatiotemporal box. More... | |
| Temporal * | tgeo_minus_value (const Temporal *temp, GSERIALIZED *gs) |
| Return a temporal geo restricted to the complement of a geo. More... | |
| Temporal * | tgeo_restrict_elevation (const Temporal *temp, const Span *s, bool atfunc) |
| Return a temporal geo restricted to (the complement of) an elevation span. More... | |
| Temporal * | tgeo_restrict_geom (const Temporal *temp, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo restricted to (the complement of) a geometry. More... | |
| Temporal * | tgeo_restrict_stbox (const Temporal *temp, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal geo restricted to (the complement of) a spatiotemporal box. More... | |
| bool | tgeo_value_at_timestamptz (const Temporal *temp, TimestampTz t, bool strict, GSERIALIZED **value) |
| Return the value of a temporal geo at a timestamptz. More... | |
| TInstant * | tgeoinst_restrict_geom (const TInstant *inst, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo instant restricted to (the complement of) a geometry. More... | |
| TInstant * | tgeoinst_restrict_geom_iter (const TInstant *inst, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo instant restricted to (the complement of) a geometry (iterator function) More... | |
| TInstant * | tgeoinst_restrict_stbox (const TInstant *inst, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal geo instant restricted to (the complement of) a spatiotemporal box. More... | |
| static TInstant * | tgeoinst_restrict_stbox_iter (const TInstant *inst, const STBox *box, bool border_inc UNUSED, bool atfunc) |
| Return a temporal geo instant restricted to (the complement of) a spatiotemporal box (iterator function) More... | |
| TSequence * | tgeoseq_disc_restrict_geom (const TSequence *seq, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo discrete sequence restricted to (the complement of) a geometry. More... | |
| TSequence * | tgeoseq_disc_restrict_stbox (const TSequence *seq, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal point discrete sequence restricted to (the complement of) a spatiotemporal box. More... | |
| Temporal * | tgeoseq_restrict_geom (const TSequence *seq, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo sequence restricted to (the complement of) a geometry. More... | |
| Temporal * | tgeoseq_restrict_stbox (const TSequence *seq, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal geo sequence restricted to (the complement of) a spatiotemporal box. More... | |
| TSequenceSet * | tgeoseq_step_restrict_geom (const TSequence *seq, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo sequence with step interpolation restricted to a geometry. More... | |
| TSequenceSet * | tgeoseq_step_restrict_stbox (const TSequence *seq, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal point sequence with step interpolation restricted to a spatiotemporal box. More... | |
| TSequenceSet * | tgeoseqset_restrict_geom (const TSequenceSet *ss, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal geo sequence set restricted to (the complement of) a geometry. More... | |
| TSequenceSet * | tgeoseqset_restrict_stbox (const TSequenceSet *ss, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal geo sequence set restricted to (the complement of) a spatiotemporal box. More... | |
| Temporal * | tpoint_at_elevation (const Temporal *temp, const Span *s) |
| Return a temporal point restricted to an elevation span. More... | |
| Temporal * | tpoint_at_geom (const Temporal *temp, const GSERIALIZED *gs) |
| Return a temporal point restricted to a geometry. More... | |
| static Temporal * | tpoint_at_stbox_segm (const Temporal *temp, const STBox *box, bool border_inc) |
| Return a temporal point with the segments that intersect a spatiotemporal box in ONLY the spatial dimension. More... | |
| Temporal * | tpoint_at_value (const Temporal *temp, GSERIALIZED *gs) |
| Return a temporal point restricted to a point. More... | |
| static Temporal * | tpoint_force2d (const Temporal *temp) |
| Force a temporal point to be in 2D. More... | |
| Temporal * | tpoint_minus_elevation (const Temporal *temp, const Span *s) |
| Return a temporal point restricted to the complement of a geometry. More... | |
| Temporal * | tpoint_minus_geom (const Temporal *temp, const GSERIALIZED *gs) |
| Return a temporal point restricted to the complement of a geometry. More... | |
| Temporal * | tpoint_minus_value (const Temporal *temp, GSERIALIZED *gs) |
| Return a temporal point restricted to the complement of a point. More... | |
| TInstant * | tpointinst_restrict_geom_iter (const TInstant *inst, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal point instant restricted to (the complement of) a spatiotemporal box (iterator function) More... | |
| static TInstant * | tpointinst_restrict_stbox_iter (const TInstant *inst, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal point instant restricted to (the complement of) a spatiotemporal box (iterator function) More... | |
| static bool | tpointsegm_timestamp_at_value1_iter (const TInstant *inst1, const TInstant *inst2, Datum value, TimestampTz *t) |
| Return the timestamp at which a segment of a temporal point takes a base value (iterator function) More... | |
| static TSequenceSet * | tpointseq_at_stbox_segm (const TSequence *seq, const STBox *box, bool border_inc) |
| Return a temporal point sequence with the segments that intersect a spatiotemporal box in ONLY the spatial dimension. More... | |
| Span * | tpointseq_interperiods (const TSequence *seq, const GSERIALIZED *gsinter, int *count) |
| Get the periods at which a temporal point sequence with linear interpolation intersects a geometry. More... | |
| static TSequenceSet * | tpointseq_linear_at_geom (const TSequence *seq, const GSERIALIZED *gs) |
| Return a temporal point sequence with linear interpolation restricted to a geometry. More... | |
| TSequenceSet * | tpointseq_linear_at_stbox_xyz (const TSequence *seq, const STBox *box, bool border_inc) |
| Restrict the temporal point to the spatial dimensions of a spatiotemporal box. More... | |
| TSequenceSet * | tpointseq_linear_restrict_geom (const TSequence *seq, const GSERIALIZED *gs, bool atfunc) |
| Return a temporal point sequence with linear interpolation restricted to (the complement of) a geometry. More... | |
| TSequenceSet * | tpointseq_linear_restrict_stbox (const TSequence *seq, const STBox *box, bool border_inc, bool atfunc) |
| Return a temporal point sequence restricted to (the complement of) a spatiotemporal box. More... | |
| static bool | tpointseq_timestamp_at_value (const TSequence *seq, Datum value, TimestampTz *t) |
| Return the timestamp at which a temporal point sequence is equal to a point. More... | |
| static TSequenceSet * | tpointseqset_at_stbox_segm (const TSequenceSet *ss, const STBox *box, bool border_inc) |
| Return a temporal point sequence set with the segments that intersect a spatiotemporal box in BOTH the spatial and the temporal dimension (if any) More... | |
Variables | |
| const int | BACK = 32 |
| const int | BOTTOM = 4 |
| const int | FRONT = 16 |
| const int | INSIDE = 0 |
| const int | LEFT = 1 |
| const int | RIGHT = 2 |
| const int | TOP = 8 |
| const int | XMAX = 1 |
| const int | YMAX = 2 |
| const int | ZMAX = 4 |
Spatial restriction functions for temporal points.