Estas funciones derivan un valor espacial del cuerpo en movimiento. centroid y bodyPointTrajectory devuelven puntos temporales que siguen una posición a lo largo del tiempo; convexHull devuelve una geometría estática.
Devuelve el centroide del cuerpo en movimiento como un punto temporal
centroid(trgeometry) → tgeompoint
SELECT asText(centroid( trgeometry 'Polygon((0 0, 1 0, 1 1, 0 1, 0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(2 0),0)@2001-01-02]')); -- Interp=Step;[POINT(0.5 0.5)@2001-01-01, POINT(2.5 0.5)@2001-01-02]
Devuelve la envolvente convexa del área recorrida por el cuerpo en movimiento
convexHull(trgeometry) → geometry
SELECT ST_GeometryType(convexHull( trgeometry 'Polygon((0 0, 1 0, 1 1, 0 1, 0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(2 0),0)@2001-01-02]')); -- ST_Polygon
Devuelve la trayectoria en el marco del mundo de un punto del marco del cuerpo transportado por la geometría rígida en movimiento
bodyPointTrajectory(trgeometry,geometry) → tgeompoint
El punto se expresa en el marco local de la forma de referencia y la pose variable en el tiempo se le aplica en cada instante.
SELECT asText(bodyPointTrajectory( trgeometry 'Polygon((0 0, 1 0, 1 1, 0 1, 0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(2 0),0)@2001-01-02]', geometry 'Point(0 0)')); -- Interp=Step;[POINT(0 0)@2001-01-01, POINT(2 0)@2001-01-02]