Transform to another subtype
tposeInst(tpose) → tposeInst
tposeSeq(tpose) → tposeSeq
tposeSeqSet(tpose) → tposeSeqSet
SELECT asText(tposeSeq(tpose 'Pose(Point(1 1), 0.5)@2001-01-01', 'discrete')); -- {Pose(Point(1 1),0.5)@2001-01-01} SELECT asText(tposeSeq(tpose 'Pose(Point(1 1), 0.5)@2001-01-01')); -- [Pose(Point(1 1),0.5)@2001-01-01] SELECT asText(tposeSeqSet(tpose 'Pose(PointZ(1 1 1), 0.5, 0.5, 0.5, 0.5)@2001-01-01')); -- {[Pose(POINT Z (1 1 1),0.5,0.5,0.5,0.5)@2001-01-01]}
Transform to another interpolation
setInterp(tpose, interp) → tpose
SELECT asText(setInterp(tpose 'Pose(Point(1 1),0.2)@2001-01-01','linear')); -- [Pose(Point(1 1),0.2)@2001-01-01] SELECT asText(setInterp(tpose '{[Pose(Point Z(1 1 1),1,0,0,0)@2001-01-01], [Pose(Point Z(2 2 2),0,0,0,1)@2001-01-02]}', 'discrete')); -- {Pose(POINT Z (1 1 1),1,0,0,0)@2001-01-01, Pose(POINT Z (2 2 2),0,0,0,1)@2001-01-02}
Round the points and the orientations of the temporal pose to the number of decimal places
round(tpose,integer=0) → tpose
SELECT asText(round(tpose '{[Pose(Point(1 1.123456789),0.123456789)@2001-01-01, Pose(Point(1 1),0.5)@2001-01-02)}', 3)); -- {[Pose(POINT(1 1.123),0.123)@2001-01-01, Pose(POINT(1 1),0.5)@2001-01-02)}