34#ifndef __MEOS_RGEO_H__
35#define __MEOS_RGEO_H__
58 #define VALIDATE_TRGEOMETRY(temp, ret) \
60 if (! ensure_not_null((void *) (temp)) || \
61 ! ensure_temporal_isof_type((Temporal *) (temp), T_TRGEOMETRY) ) \
65 #define VALIDATE_TRGEOMETRY(temp, ret) \
68 assert(((Temporal *) (temp))->temptype == T_TRGEOMETRY); \
Temporal * trgeo_restrict_timestamptz(const Temporal *temp, TimestampTz t, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a timestamptz.
Definition: trgeo.c:1034
Temporal * trgeo_restrict_tstzset(const Temporal *temp, const Set *s, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a timestamptz set.
Definition: trgeo.c:1088
Temporal * trgeo_restrict_tstzspanset(const Temporal *temp, const SpanSet *ss, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a timestamptz span set.
Definition: trgeo.c:1194
Temporal * trgeo_restrict_tstzspan(const Temporal *temp, const Span *s, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a timestamptz span.
Definition: trgeo.c:1141
Temporal * trgeo_restrict_values(const Temporal *temp, const Set *s, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a set of geometries.
Definition: trgeo.c:983
Temporal * trgeo_restrict_value(const Temporal *temp, Datum value, bool atfunc)
Restrict a temporal rigid geometry to (the complement of) a geometry.
Definition: trgeo.c:932
TInstant * trgeo_instant_n(const Temporal *temp, int n)
Return a copy of the n-th instant of a temporal rigid geometry.
Definition: trgeo.c:615
TSequence ** trgeo_sequences(const Temporal *temp, int *count)
Return an array of copies of the sequences of a temporal sequence (set)
Definition: trgeo.c:752
GSERIALIZED * trgeo_start_value(const Temporal *temp)
Return a copy of the start value of a temporal rigid geometry.
Definition: trgeo.c:446
TSequence * trgeo_start_sequence(const Temporal *temp)
Return a copy of the start sequence of a temporal sequence (set)
Definition: trgeo.c:667
TSequence * trgeo_sequence_n(const Temporal *temp, int i)
Return a copy of the n-th sequence of a temporal sequence (set)
Definition: trgeo.c:717
TInstant * trgeo_end_instant(const Temporal *temp)
Return a copy of the end instant of a temporal rigid geometry.
Definition: trgeo.c:594
TSequence * trgeo_end_sequence(const Temporal *temp)
Return a copy of the end sequence of a temporal sequence (set)
Definition: trgeo.c:691
TInstant * trgeo_start_instant(const Temporal *temp)
Return a copy of the start instant of a temporal rigid geometry.
Definition: trgeo.c:574
GSERIALIZED * trgeo_end_value(const Temporal *temp)
Return a copy of the end base value of a temporal rigid geometry.
Definition: trgeo.c:474
bool trgeo_value_n(const Temporal *temp, int n, GSERIALIZED **result)
Return in the last argument a copy of the n-th value of a temporal value.
Definition: trgeo.c:511
TInstant ** trgeo_instants(const Temporal *temp, int *count)
Return a copy of the distinct instants of a temporal rigid geometry.
Definition: trgeo.c:640
int always_eq_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return true if two temporal rigid geometries are always equal.
Definition: trgeo_compops.c:235
int ever_eq_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return true if a temporal rigid geometry is ever equal to a rigid geometry.
Definition: trgeo_compops.c:113
int always_ne_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return true if a geometry is always different from a temporal rigid geometry.
Definition: trgeo_compops.c:183
int ever_ne_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return true if a temporal rigid geometry is ever different from a geometry.
Definition: trgeo_compops.c:141
int always_ne_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return true if two temporal rigid geometries are always different.
Definition: trgeo_compops.c:247
int always_ne_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return true if a temporal rigid geometry is always different from a geometry.
Definition: trgeo_compops.c:197
int always_eq_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return true if a geometry is always equal to a temporal rigid geometry.
Definition: trgeo_compops.c:155
int ever_eq_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return true if a geometry is ever equal to a temporal rigid geometry.
Definition: trgeo_compops.c:99
int always_eq_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return true if a temporal rigid geometry is always equal to a geometry.
Definition: trgeo_compops.c:169
int ever_ne_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return true if two temporal rigid geometries are ever different.
Definition: trgeo_compops.c:223
int ever_ne_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return true if a geometry is ever different from a temporal rigid geometry.
Definition: trgeo_compops.c:127
int ever_eq_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return true if two temporal rigid geometries are ever equal.
Definition: trgeo_compops.c:211
Temporal * tne_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return the temporal inequality of a geometry and a temporal rigid geometry.
Definition: trgeo_compops.c:317
Temporal * teq_geo_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Return the temporal equality of a geometry and a temporal rigid geometry.
Definition: trgeo_compops.c:303
Temporal * tne_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the temporal inequality of a temporal rigid geometry and a geometry.
Definition: trgeo_compops.c:347
Temporal * teq_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the temporal equality of a temporal rigid geometry and a geometry.
Definition: trgeo_compops.c:333
Temporal * trgeo_to_tpoint(const Temporal *temp)
Return a temporal point obtained from the points of the temporal pose of a temporal rigid geometry.
Definition: trgeo.c:275
Temporal * trgeo_to_tpose(const Temporal *temp)
Return a temporal pose obtained by removing the reference geometry of a temporal rigid geometry.
Definition: trgeo.c:252
GSERIALIZED * trgeo_geom(const Temporal *temp)
Return a copy of the reference geometry of a temporal rigid geometry.
Definition: trgeo.c:316
TInstant * nai_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return the nearest approach instant between two temporal rigid geometries @sqlfn nearestApproachInsta...
Definition: trgeo_distance.c:1968
TInstant * nai_trgeo_tpoint(const Temporal *temp1, const Temporal *temp2)
Return the nearest approach instant between a temporal rigid geometry and a temporal point @sqlfn nea...
Definition: trgeo_distance.c:1940
double nad_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the nearest approach distance between a temporal rigid geometry and a geometry.
Definition: trgeo_distance.c:2000
double nad_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return the nearest approach distance between two temporal rigid geometries.
Definition: trgeo_distance.c:2077
GSERIALIZED * shortestline_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the line connecting the nearest approach point between a temporal rigid geometry and a geometr...
Definition: trgeo_distance.c:2103
GSERIALIZED * shortestline_trgeo_tpoint(const Temporal *temp1, const Temporal *temp2)
Return the line connecting the nearest approach point between a temporal rigid geometry and a tempora...
Definition: trgeo_distance.c:2127
GSERIALIZED * shortestline_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Return the line connecting the nearest approach point between two temporal rigid geometries @sqlfn sh...
Definition: trgeo_distance.c:2154
TInstant * nai_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the nearest approach instant between a temporal rigid geometry and a geometry @sqlfn nearestAp...
Definition: trgeo_distance.c:1906
Temporal * distance_trgeo_geo(const Temporal *temp, const GSERIALIZED *gs)
Return the temporal distance between a temporal rigid geometry and a geometry/geography point.
Definition: trgeo_distance.c:1831
double nad_trgeo_tpoint(const Temporal *temp1, const Temporal *temp2)
Return the nearest approach distance between two temporal rigid geometries.
Definition: trgeo_distance.c:2055
double nad_trgeo_stbox(const Temporal *temp, const STBox *box)
Return the nearest approach distance between a temporal rigid geometry and a spatiotemporal box.
Definition: trgeo_distance.c:2019
char * trgeo_out(const Temporal *temp)
Return the Well-Known Text (WKT) representation of a temporal rigid geometry.
Definition: trgeo.c:171
interpType
Enumeration that defines the interpolation types used in MEOS.
Definition: meos.h:161
External API of the Mobility Engine Open Source (MEOS) library.
Temporal * trgeo_set_interp(const Temporal *temp, interpType interp)
Restrict a temporal rigid geometry transformed to an interpolation.
Definition: trgeo.c:901
Temporal * trgeo_append_tinstant(Temporal *temp, const TInstant *inst, interpType interp, double maxdist, const Interval *maxt, bool expand)
Append an instant to a temporal value.
Definition: trgeo.c:1259
TSequence ** trgeo_segments(const Temporal *temp, int *count)
Temporal * trgeo_delete_tstzspanset(const Temporal *temp, const SpanSet *ss, bool connect)
Delete a timestamptz span set from a temporal rigid geometry.
Definition: trgeo.c:1390
GSERIALIZED * trgeo_traversed_area(const Temporal *temp)
double nad_stbox_trgeo(const STBox *box, const Temporal *temp)
Temporal * distance_trgeo_trgeo(const Temporal *temp1, const Temporal *temp2)
Temporal * trgeo_delete_tstzset(const Temporal *temp, const Set *s, bool connect)
Delete a timestamp set from a temporal rigid geometry connecting the instants before and after the gi...
Definition: trgeo.c:1342
Temporal * trgeo_delete_timestamptz(const Temporal *temp, TimestampTz t, bool connect)
Return the value of a temporal rigid geometry at a timestamptz @csqlfn Temporal_delete_timestamptz.
Definition: trgeo.c:1317
Temporal * trgeo_append_tsequence(Temporal *temp, const TSequence *seq, bool expand)
Append a sequence to a temporal value.
Definition: trgeo.c:1289
Temporal * trgeo_round(const Temporal *temp, int maxdd)
Return a temporal rigid geometry rounded to a given number of decimal places.
Definition: trgeo.c:785
Temporal * distance_trgeo_tpoint(const Temporal *temp1, const Temporal *temp2)
TInstant * trgeo_to_tinstant(const Temporal *temp)
Return a temporal rigid geometry transformed to a temporal instant.
Definition: trgeo.c:810
Set * trgeo_points(const Temporal *temp)
TInstant * trgeoinst_make(const GSERIALIZED *geom, const Pose *pose, TimestampTz t)
Construct a temporal geometry instant value from the arguments.
Definition: trgeo_inst.c:197
Temporal * trgeo_rotation(const Temporal *temp)
Temporal * geo_tpose_to_trgeo(const GSERIALIZED *gs, const Temporal *temp)
Construct a temporal rigid geometry from a geometry and a temporal pose.
Definition: trgeo.c:399
Temporal * trgeo_delete_tstzspan(const Temporal *temp, const Span *s, bool connect)
Delete a timestamptz span from a temporal rigid geometry.
Definition: trgeo.c:1366
int64 TimestampTz
Definition: postgres_ext_defs.in.h:22
uintptr_t Datum
Definition: postgres_ext_defs.in.h:7
Definition: postgis_ext_defs.in.h:170
Definition: postgres_ext_defs.in.h:27
Basic functions for static pose objects.
Definition: pose.h:56
Structure to represent spatiotemporal boxes.
Definition: meos.h:134
Structure to represent sets of values.
Definition: meos.h:80
Structure to represent span sets.
Definition: meos.h:108
Structure to represent spans (a.k.a.
Definition: meos.h:94
Structure to represent temporal values of instant subtype.
Definition: meos.h:185
Structure to represent temporal values of sequence subtype.
Definition: meos.h:202
Structure to represent the common structure of temporal values of any temporal subtype.
Definition: meos.h:173
int const GSERIALIZED * gs
Definition: trgeo_spatialrels.h:52
#define connect(s, name, namelen)
Definition: win32_port.h:463