MobilityDB 1.3
Loading...
Searching...
No Matches
Functions
tcbuffer_spatialrels.c File Reference

Ever/always spatial relationships for temporal circular buffers. More...

#include "cbuffer/tcbuffer_spatialrels.h"
#include <assert.h>
#include <meos.h>
#include <meos_internal_geo.h>
#include "temporal/lifting.h"
#include "temporal/type_util.h"
#include "geo/tgeo_spatialfuncs.h"
#include "geo/tgeo_spatialrels.h"
#include "cbuffer/cbuffer.h"
#include "cbuffer/tcbuffer.h"
#include "cbuffer/tcbuffer_spatialfuncs.h"

Functions

int acontains_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp)
 Return 1 if a circular buffer always contains a temporal circular buffer, 0 if not, and -1 on error. More...
 
int acontains_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp)
 Return 1 if a geometry always contains a temporal circular buffer, 0 if not, and -1 on error or if the geometry is empty. More...
 
int acontains_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer always contains a circular buffer, 0 if not, and -1 on error. More...
 
int acontains_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer always contains a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int acovers_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp)
 Return 1 if a circular buffer always covers a temporal circular buffer, 0 if not, and -1 on error. More...
 
int acovers_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp)
 Return 1 if a geometry always covers a temporal circular buffer, 0 if not, and -1 on error or if the geometry is empty. More...
 
int acovers_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer always covers a circular buffer, 0 if not, and -1 on error. More...
 
int acovers_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer always covers a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int acovers_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if a temporal circular buffer always covers another one, 0 if not, and -1 on error. More...
 
int adisjoint_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer and a geometry are always disjoint, 0 if not, and -1 on error. More...
 
int adisjoint_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer and a geometry are always disjoint,0 if not, and -1 on error or if the geometry is empty. More...
 
int adisjoint_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if the temporal circular buffers are always disjoint, 0 if not, and -1 on error or if the temporal circular buffers do not intersect in time. More...
 
int adwithin_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, double dist)
 Return 1 if a geometry and a temporal circular buffer are always within a distance, 0 if not, -1 on error. More...
 
int adwithin_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, double dist)
 Return 1 if a geometry and a temporal circular buffer are always within a distance, 0 if not, -1 on error or if the geometry is empty. More...
 
int adwithin_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, double dist)
 Return 1 if two temporal circular buffers are always within a distance, 0 if not, -1 on error or if the temporal circular buffers do not intersect on time. More...
 
int aintersects_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a circular buffer and a temporal circular buffer always intersect, 0 if not, and -1 on error. More...
 
int aintersects_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a geometry and a temporal circular buffer always intersect, 0 if not, and -1 on error or if the geometry is empty. More...
 
int aintersects_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if the temporal circular buffers always intersect, 0 if not, and -1 on error or if the temporal circular buffers do not intersect in time. More...
 
int atouches_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer always touches a circular buffer, 0 if not, and -1 on error. More...
 
int atouches_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer always touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int atouches_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if a temporal circular buffer always touches another one, 0 if not, and -1 on error. More...
 
int ea_contains_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp, bool ever)
 Return 1 if a circular buffer ever contains a temporal circular buffer, 0 if not, and -1 on error. More...
 
int ea_contains_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp, bool ever)
 Return 1 if a geometry ever/always contains a temporal circular buffer, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_contains_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, bool ever)
 Return 1 if a temporal circular buffer ever/always contains a circular buffer, 0 if not, and -1 on error. More...
 
int ea_contains_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever)
 Return 1 if a temporal circular buffer ever/always contains a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_covers_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp, bool ever)
 Return 1 if a circular buffer ever covers a temporal circular buffer, 0 if not, and -1 on error. More...
 
int ea_covers_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp, bool ever)
 Return 1 if a geometry ever/always covers a temporal circular buffer 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_covers_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, bool ever)
 Return 1 if a temporal circular buffer ever/always covers a circular buffer, 0 if not, and -1 on error. More...
 
int ea_covers_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever)
 Return 1 if a temporal circular buffer ever/always covers a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_covers_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, bool ever)
 Return 1 if a temporal circular buffer ever/always covers another one, 0 if not, and -1 on error. More...
 
int ea_disjoint_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp, bool ever)
 Return 1 if a temporal circular buffer and a circular buffer are ever disjoint, 0 if not, and -1 on error. More...
 
int ea_disjoint_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp, bool ever)
 Return 1 if a temporal circular buffer and a geometry are ever disjoint,0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_disjoint_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, bool ever)
 Return 1 if a temporal circular buffer and a circular buffer are ever disjoint, 0 if not, and -1 on error. More...
 
int ea_disjoint_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever)
 Return 1 if a temporal circular buffer and a geometry are ever disjoint,0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_disjoint_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, bool ever)
 Return 1 if the temporal circular buffers are ever/always disjoint, 0 if not, and -1 on error or if the temporal circular buffers do not intersect in time. More...
 
int ea_dwithin_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, double dist, bool ever, bool invert)
 Return 1 if a temporal circular buffer and a geometry are ever/always within the given distance, 0 if not, -1 on error or if the geometry is empty. More...
 
int ea_dwithin_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, double dist, bool ever)
 Return 1 if two temporal circular buffers are ever/always within a distance, 0 if not, -1 on error or if the temporal circular buffers do not intersect on time. More...
 
int ea_intersects_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp, bool ever)
 Return 1 if a circular buffer ever/always intersects a temporal circular buffer, 0 if not, and -1 on error. More...
 
int ea_intersects_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp, bool ever)
 Return 1 if a temporal circular buffer and a geometry intersect 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_intersects_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, bool ever)
 Return 1 if a temporal circular buffer ever/always intersects a circular buffer, 0 if not, and -1 on error. More...
 
int ea_intersects_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever)
 Return 1 if a temporal circular buffer ever/always intersects a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_intersects_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, bool ever)
 Return 1 if a temporal circular buffer ever/always intersects another one, 0 if not, and -1 on error. More...
 
int ea_spatialrel_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return true if a temporal circular buffer and a circular buffer ever/always satisfy a spatial relationship. More...
 
int ea_spatialrel_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return true if a temporal circular buffer and a geometry ever/always satisfy a spatial relationship. More...
 
int ea_spatialrel_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, datum_func2 func, bool ever, bool bbox_test)
 Return 1 if two temporal circular buffers ever/always satisfy a spatial relationship, 0 if not, and -1 on error. More...
 
int ea_spatialrel_tcbufferinst_geo (const TInstant *inst, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool invert)
 Return 1 if a temporal circular buffer instant and a geometry ever/always satisfy a spatial relationship. More...
 
int ea_spatialrel_tcbufferseq_discstep_geo (const TSequence *seq, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return 1 if a temporal circular buffer sequence with discrete or step interpolation and a geometry ever/always satisfy a spatial relationship. More...
 
int ea_spatialrel_tcbufferseq_geo (const TSequence *seq, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return 1 if a temporal circular buffer sequence and a geometry ever/always satisfy a spatial relationship (dispatch function) More...
 
int ea_spatialrel_tcbufferseq_linear_geo (const TSequence *seq, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return 1 if a temporal circular buffer sequence with linear interpolation and a geometry ever/always satisfy a spatial relationship. More...
 
int ea_spatialrel_tcbufferseqset_geo (const TSequenceSet *ss, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool ever, bool invert)
 Return 1 if a temporal circular buffer sequence set and a geometry ever/always satisfy a spatial relationship. More...
 
int ea_touches_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp, bool ever)
 Return 1 if a temporal circular buffer ever/always touches a circular buffer, 0 if not, and -1 on error. More...
 
int ea_touches_geo_tcbuffer (const GSERIALIZED *gs, const Temporal *temp, bool ever)
 Return 1 if a temporal circular buffer and a geometry ever touch, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_touches_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, bool ever)
 Return 1 if a temporal circular buffer ever/always touches a circular buffer, 0 if not, and -1 on error. More...
 
int ea_touches_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever)
 Return 1 if a temporal circular buffer and a geometry ever touch, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ea_touches_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, bool ever)
 Return 1 if a temporal circular buffer ever/always touches another one, 0 if not, and -1 on error. More...
 
int econtains_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp)
 Return 1 if a circular buffer ever contains a temporal circular buffer, 0 if not, and -1 on error. More...
 
int econtains_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer ever contains a circular buffer, 0 if not, and -1 on error. More...
 
int econtains_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer ever contains a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ecovers_cbuffer_tcbuffer (const Cbuffer *cb, const Temporal *temp)
 Return 1 if a circular buffer ever covers a temporal circular buffer, 0 if not, and -1 on error. More...
 
int ecovers_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer ever covers a circular buffer, 0 if not, and -1 on error. More...
 
int ecovers_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer ever covers a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int ecovers_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if a temporal circular buffer ever covers another one, 0 if not, and -1 on error. More...
 
int edisjoint_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer and a circular buffer are ever disjoint, 0 if not, and -1 on error. More...
 
int edisjoint_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer and a geometry are ever disjoint, 0 if not, and -1 on error or if the geometry is empty. More...
 
int edisjoint_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if the temporal circular buffers are ever disjoint, 0 if not, and -1 on error or if the temporal circular buffers do not intersect in time. More...
 
int edwithin_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb, double dist)
 Return 1 if a geometry and a temporal circular buffer are ever within the given distance, 0 if not, -1 on error. More...
 
int edwithin_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs, double dist)
 Return 1 if a geometry and a temporal circular buffer are ever within the given distance, 0 if not, -1 on error or if the geometry is empty. More...
 
int edwithin_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2, double dist)
 Return 1 if two temporal circular buffers are ever within a distance, 0 if not, -1 on error or if the temporal circular buffers do not intersect on time. More...
 
int eintersects_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a circular buffer and a temporal circular buffer ever intersect, 0 if not, and -1 on error. More...
 
int eintersects_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a geometry and a temporal circular buffer ever intersect, 0 if not, and -1 on error or if the geometry is empty. More...
 
int eintersects_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if the temporal circular buffers ever intersect, 0 if not, and -1 on error or if the temporal circular buffers do not intersect in time. More...
 
int etouches_tcbuffer_cbuffer (const Temporal *temp, const Cbuffer *cb)
 Return 1 if a temporal circular buffer always touches a circular buffer, 0 if not, and -1 on error. More...
 
int etouches_tcbuffer_geo (const Temporal *temp, const GSERIALIZED *gs)
 Return 1 if a temporal circular buffer ever touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More...
 
int etouches_tcbuffer_tcbuffer (const Temporal *temp1, const Temporal *temp2)
 Return 1 if a temporal circular buffer ever touches another one, 0 if not, and -1 on error. More...
 
int spatialrel_geo_geo (const GSERIALIZED *gs1, const GSERIALIZED *gs2, Datum param, varfunc func, int numparam, bool invert)
 Return 1 if two geometries satisfy a spatial relationship. More...
 
static int spatialrel_geo_geo_simple (const GSERIALIZED *gs1, const GSERIALIZED *gs2, Datum param, varfunc func, int numparam, bool invert)
 Return 1 if two geometries satisfy a spatial relationship. More...
 

Detailed Description

Ever/always spatial relationships for temporal circular buffers.

These relationships compute the ever/always spatial relationship between the arguments and return a Boolean. These functions may be used for filtering purposes before applying the corresponding spatiotemporal relationship.

The following relationships are supported: econtains, acontains, ecovers, acovers, edisjoint, adisjoint, eintersects, aintersects, etouches, atouches,edwithin, andadwithin`.