Ever and always relationships
eContains(geometry,tpose) → boolean
eCovers(geometry,tpose) → boolean
eDisjoint({geometry,tpose},{geometry,tpose}) → boolean
eDwithin({geometry,tpose},{geometry,tpose},float) → boolean
eIntersects({geometry,tpose},{geometry,tpose}) → boolean
eTouches(geometry,tpose) → boolean
eTouches(tpose,geometry) → boolean
aContains(geometry,tpose) → boolean
aCovers(geometry,tpose) → boolean
aDisjoint({geometry,tpose},{geometry,tpose}) → boolean
aDwithin({geometry,tpose},{geometry,tpose},float) → boolean
aIntersects({geometry,tpose},{geometry,tpose}) → boolean
aTouches(geometry,tpose) → boolean
aTouches(tpose,geometry) → boolean
The ever and always relationships determine whether the topological or distance relationship is ever or always satisfied and result in a boolean. A temporal pose answers them at the position it occupies, so a value with linear interpolation is answered along its trajectory rather than at its instants alone. The temporal pose declares the relationships a moving point answers: eContains, aContains, eCovers and aCovers take the geometry first only, and eTouches and aTouches have no direction between two temporal poses, since a moving point neither contains nor covers a geometry and two moving points do not touch.
SELECT eContains(geometry 'Polygon((0 0,0 50,50 50,50 0,0 0))', tpose '[Pose(Point(1 1),0.1)@2001-01-01, Pose(Point(3 3),0.3)@2001-01-03]'); -- true SELECT aCovers(geometry 'Polygon((0 0,0 50,50 50,50 0,0 0))', tpose '[Pose(Point(1 1),0.1)@2001-01-01, Pose(Point(3 3),0.3)@2001-01-03]'); -- true SELECT eDisjoint(geometry(pose 'Pose(Point(2 2), 0.0)'), tpose '[Pose(Point(1 1),0.1)@2001-01-01, Pose(Point(1 1),0.3)@2001-01-03)'); -- true SELECT eIntersects(tpose '[Pose(Point(1 1),0.1)@2001-01-01, Pose(Point(3 3),0.1)@2001-01-03]', tpose '[Pose(Point(3 3),0.1)@2001-01-01, Pose(Point(1 1),0.1)@2001-01-03]'); -- true SELECT eTouches(tpose 'Pose(Point(0 0), 0.1)@2001-01-01', geometry 'Polygon((0 0,0 2,2 2,2 0,0 0))'); -- true SELECT aDwithin(tpose '[Pose(Point(1 1),0.1)@2001-01-01, Pose(Point(3 3),0.1)@2001-01-03]', geometry 'Point(9 9)', 1.0); -- false