63#define DatumGetCbufferP(X) ((Cbuffer *) DatumGetPointer(X))
64#define CbufferPGetDatum(X) PointerGetDatum(X)
65#define PG_GETARG_CBUFFER_P(X) DatumGetCbufferP(PG_GETARG_DATUM(X))
66#define PG_RETURN_CBUFFER_P(X) PG_RETURN_POINTER(X)
82 const Cbuffer *cbuf3,
double ratio);
84 const Cbuffer *end,
long double ratio);
Cbuffer * cbuffer_transf_pj(const Cbuffer *cb, int32_t srid_to, const LWPROJ *pj)
Return a circular buffer transformed to another SRID using a pipeline.
Definition: cbuffer.c:844
bool cbuffer_collinear(const Cbuffer *cb1, const Cbuffer *cb2, const Cbuffer *cbuf3, double ratio)
Return true if the three values are collinear.
Definition: cbuffer.c:78
bool ensure_valid_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Ensure the validity of two circular buffers.
Definition: cbuffer.c:195
Datum datum_cbuffer_contains(Datum cb1, Datum cb2)
Return a Datum true if the first circular buffer contains the second one.
Definition: cbuffer.c:1266
int cbuffer_disjoint(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if two circular buffers are disjoint in 2D.
Definition: cbuffer.c:1114
Datum datum_cbuffer_dwithin(Datum cb1, Datum cb2, Datum dist)
Return a Datum true if two 2D circular buffers are within a distance.
Definition: cbuffer.c:1329
int cbuffer_covers(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer covers the second one.
Definition: cbuffer.c:1092
Datum datum_cbuffer_intersects(Datum cb1, Datum cb2)
Return a Datum true if two circular buffers intersect in 2D.
Definition: cbuffer.c:1303
int cbuffer_dwithin(const Cbuffer *cb1, const Cbuffer *cb2, double dist)
Return true if two 2D circular buffers are within a distance.
Definition: cbuffer.c:1157
const GSERIALIZED * cbuffer_point_p(const Cbuffer *cb)
Return a pointer to the point of a circular buffer.
Definition: cbuffer.c:702
int cbuffer_intersects(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if two circular buffers intersect in 2D.
Definition: cbuffer.c:1127
Cbuffer * cbuffer_parse(const char **str, bool end)
Parse a circular buffer from its string representation.
Definition: cbuffer.c:227
Datum datum_cbuffer_touches(Datum cb1, Datum cb2)
Return a Datum true if the first circular buffer touches the second one.
Definition: cbuffer.c:1316
int cbuffer_contains(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer contains the second one.
Definition: cbuffer.c:1070
Cbuffer * cbuffersegm_interpolate(const Cbuffer *start, const Cbuffer *end, long double ratio)
Return a circular buffer interpolated from a circular buffer segment with respect to a fraction of it...
Definition: cbuffer.c:149
bool ensure_valid_cbuffer_geo(const Cbuffer *cb, const GSERIALIZED *gs)
Ensure the validity of a circular buffer and geometry.
Definition: cbuffer.c:170
Datum datum_cbuffer_disjoint(Datum cb1, Datum cb2)
Return a Datum true if two circular buffers are disjoint in 2D.
Definition: cbuffer.c:1291
char * cbuffer_wkt_out(Datum value, int maxdd, bool extended)
Return the Well-Known Text (WKT) representation of a circular buffer.
Definition: cbuffer.c:339
int cbuffer_touches(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer touches the second one.
Definition: cbuffer.c:1141
Datum datum_cbuffer_covers(Datum cb1, Datum cb2)
Return a Datum true if the first circular buffer covers the second one.
Definition: cbuffer.c:1279
long double cbuffersegm_locate(const Cbuffer *start, const Cbuffer *end, const Cbuffer *value)
Return a float in [0,1] representing the location of the closest location on the circular buffer segm...
Definition: cbuffer.c:97
bool ensure_valid_cbuffer_stbox(const Cbuffer *cb, const STBox *box)
Ensure the validity of a circular buffer and spatiotemporal box.
Definition: cbuffer.c:182
bool ensure_valid_cbufferset_cbuffer(const Set *s, const Cbuffer *cb)
Return true if a set and a circular buffer are valid for set operations.
Definition: cbuffer.c:210
Datum datum_cbuffer_round(Datum buffer, Datum size)
Return a circular buffer with the precision of the values set to a number of decimal places.
Definition: cbuffer.c:767
int cbuffersegm_distance_turnpt(const Cbuffer *start1, const Cbuffer *end1, const Cbuffer *start2, const Cbuffer *end2, TimestampTz lower, TimestampTz upper, TimestampTz *t1, TimestampTz *t2)
Return the TWO timestamps at which two temporal circular buffers segments are at the minimum distance...
Definition: tcbuffer_distance.c:219
int touches_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer touches the second one.
Definition: cbuffer.c:1236
int covers_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer covers the second one.
Definition: cbuffer.c:1200
int contains_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if the first circular buffer contains the second one.
Definition: cbuffer.c:1188
int disjoint_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if two circular buffers are disjoint in 2D.
Definition: cbuffer.c:1212
int intersects_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2)
Return true if two circular buffers intersect in 2D.
Definition: cbuffer.c:1224
int dwithin_cbuffer_cbuffer(const Cbuffer *cb1, const Cbuffer *cb2, double dist)
Return true if two 2D circular buffers are within a distance.
Definition: cbuffer.c:1249
double cbuffer_distance(const Cbuffer *cb1, const Cbuffer *cb2)
Return the distance between two circular buffers.
Definition: cbuffer.c:928
Datum datum_cbuffer_distance(Datum cb1, Datum cb2)
Return the distance between two circular buffers.
Definition: cbuffer.c:960
External API of the Mobility Engine Open Source (MEOS) library.
Datum buffer(PG_FUNCTION_ARGS)
int64 TimestampTz
Definition: postgres_ext_defs.in.h:22
uintptr_t Datum
Definition: postgres_ext_defs.in.h:7
signed int int32
Definition: postgres_ext_defs.in.h:11
double radius
radius
Definition: cbuffer.h:52
Datum point
First 8 bytes of the point which is passed by reference.
Definition: cbuffer.h:53
int32 vl_len_
Varlena header (do not touch directly!)
Definition: cbuffer.h:51
Functions for temporal buffers.
Definition: cbuffer.h:50
Definition: postgis_ext_defs.in.h:170
Definition: postgis_ext_defs.in.h:406
Structure to represent spatiotemporal boxes.
Definition: meos.h:134
Structure to represent sets of values.
Definition: meos.h:80
int const GSERIALIZED * gs
Definition: trgeo_spatialrels.h:52