Equality and ever / always operators compare two temporal rigid geometries on the materialised geometry, both the reference shape and the pose path must agree at every shared instant.
Test exact (in)equality of two temporal rigid geometries
trgeometry = trgeometry → boolean
trgeometry <> trgeometry → boolean
SELECT trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]' = trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]'; -- t SELECT trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]' <> trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]'; -- f
Test whether the materialised geometry is ever (not) equal to the operand at any time
{geometry,trgeometry} ?= {geometry,trgeometry} → boolean
{geometry,trgeometry} ?<> {geometry,trgeometry} → boolean
SELECT trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));[Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(5 0), 0.0)@2001-01-02]'
?= geometry 'Polygon((5 0,6 0,6 1,5 1,5 0))';
-- t
Test whether the materialised geometry is always (not) equal to the operand
{geometry,trgeometry} %= {geometry,trgeometry} → boolean
{geometry,trgeometry} %<> {geometry,trgeometry} → boolean
SELECT trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]' %= trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]'; -- t