# Module iron_shapes::transform

source · ## Expand description

Transforms are used to describe the location, rotation, scaling and mirroring of geometric shapes.

## Structs

- Transformation described by a mirroring at the
`x`

axis, then a rotation around the origin, then a scaling, then a translation. This transformation allows rotations by arbitrary angles. - Description of a transformation in the euclidean plane by a 2x2 matrix
`A`

. Transforming a point`p`

is computed by the matrix product`A*p`

. - Affine transformation represented as a 3x3 matrix like:
- Transformation that consists only of a rotation by a multiple of 90 degrees around the origin
`(0, 0)`

. - Describes a geometric transformation that consists of a optional mirroring along the x-axis followed by a rotation by a multiple of 90 degrees followed by a displacement.

## Traits

- Geometric transformation which preserves parallelism. Adds ‘shear’ to the
`SimilarityTransform`

. - Geometric transformation which preserves oriented angles and distances (i.e. translation).
- Geometric transformation which preserves angles and distances (e.g. euclidean transform).
- Geometric transformation which preserves angles and distances (e.g. euclidean transform) but allows only rotations by a multiple of 90 degrees.
- Geometric transformation which preserves angles and ratios of distances. Adds resizing to the
`IsometricTransform`

. - Geometric transformation which preserves angles and ratios of distances. Adds resizing by integer numbers to the
`IsometricTransform90`

. - General geometric transformation.