Las funciones atGeometry, minusGeometry, atStbox y minusStbox restringen una trgeometry a (el complemento de) una geometría o una caja espaciotemporal. La semántica refleja la de tpose: una geometría rígida temporal está «en» una región en el instante t si y solo si su centroide (antena) en t se encuentra en esa región.
Restringir una trgeometry a (el complemento de) una geometría
atGeometry(trgeometry, geometry) → trgeometry
minusGeometry(trgeometry, geometry) → trgeometry
SELECT temporalTime(atGeometry(
trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));[Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(4 0), 0.0)@2001-01-05]',
geometry 'Polygon((1 -1,3 -1,3 1,1 1,1 -1))'));
-- {[2001-01-02, 2001-01-04]}
SELECT temporalTime(minusGeometry(
trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));[Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(4 0), 0.0)@2001-01-05]',
geometry 'Polygon((1 -1,3 -1,3 1,1 1,1 -1))'));
-- {[2001-01-01, 2001-01-02), (2001-01-04, 2001-01-05]}
La restricción contra una geometría vacía devuelve NULL para atGeometry y la entrada original para minusGeometry.
Restringir una trgeometry a (el complemento de) una caja espaciotemporal
atStbox(trgeometry, stbox [, border_inc boolean = true]) → trgeometry
minusStbox(trgeometry, stbox [, border_inc boolean = true]) → trgeometry
SELECT temporalTime(atStbox(
trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));[Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(4 0), 0.0)@2001-01-05]',
stbox 'STBOX X((1, -1), (3, 1))'));
-- {[2001-01-02, 2001-01-04]}
SELECT temporalTime(atStbox(
trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));[Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(4 0), 0.0)@2001-01-05]',
stbox 'STBOX T([2001-01-02, 2001-01-04])'));
-- {[2001-01-02, 2001-01-04]}
Si la STBox solo tiene un componente temporal, la llamada se reduce a atTime estándar; si solo tiene un componente espacial, se conserva el dominio temporal.