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. 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.
bodyPointTrajectory(trgeometry, geometry) → tgeompoint
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]