Transformation

class compas.geometry.Transformation(matrix=None)[source]

Bases: object

The Transformation represents a 4x4 transformation matrix.

It is the base class for transformations like Rotation, Translation, Scale, Reflection, Projection and Shear.

The class allows to concatenate Transformations by multiplication, to calculate the inverse transformation and to decompose a transformation into its components of rotation, translation, scale, shear, and perspective. The matrix follows the row-major order, such that translation components x, y, z are in the right column of the matrix, i.e. M[0][3], M[1][3], M[2][3] = x, y, z.

Parameters

matrix (list of list of float, optional) – The 4x4 transformation matrix.

Examples

>>> from compas.geometry import Frame
>>> f1 = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15])
>>> T = Transformation.from_frame(f1)
>>> Sc, Sh, R, Tl, P = T.decomposed()
>>> Tinv = T.inverse()

Methods

__init__([matrix])

Construct a transformation from a 4x4 transformation matrix.

concatenate(other)

Concatenate another transformation to this transformation.

concatenated(other)

Concatenate two transformations into one Transformation.

copy()

Returns a copy of the transformation.

decomposed()

Decompose the Transformation into its Scale, Shear, Rotation, Translation and Projection components.

from_change_of_basis(frame_from, frame_to)

Computes a change of basis transformation between two frames.

from_data(data)

Creates a Transformation from a data dict.

from_euler_angles(euler_angles[, static, …])

Construct a transformation from a rotation represented by Euler angles.

from_frame(frame)

Computes a transformation from world XY to frame.

from_frame_to_frame(frame_from, frame_to)

Computes a transformation between two frames.

from_list(numbers)

Creates a Transformation from a list of 16 numbers.

from_matrix(matrix)

Creates a Transformation from a 4x4 matrix-like object.

inverse()

Returns the inverse transformation.

invert()

Invert this transformation.

inverted()

Returns the inverse transformation.

to_data()

Convert a Transformation object to a data dict.

transpose()

Transpose the matrix of this transformation.

transposed()

Create a transposed copy of this transformation.