def transform(self, transformation): """Transform the frame. Parameters ---------- transformation : :class:`Transformation` The transformation used to transform the Frame. Examples -------- >>> from compas.geometry import Frame >>> from compas.geometry import Transformation >>> f1 = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15]) >>> T = Transformation.from_frame(f1) >>> f2 = Frame.worldXY() >>> f2.transform(T) >>> f1 == f2 True """ T = transformation * Transformation.from_frame(self) point = T.translation xaxis, yaxis = T.basis_vectors self.point = point self.xaxis = xaxis self.yaxis = yaxis
def test_from_frame(): f1 = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15]) T = Transformation.from_frame(f1) f2 = Frame.from_transformation(T) assert np.allclose(f1, f2)
def test_inverse(): f = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15]) T = Transformation.from_frame(f) assert Transformation() == T * T.inverse()