atrafo
Affine transformation data type.
Signatures
- identity()
- translation( vector offset )
- rotation( vector axis, float angle )
- rotation( vector onset, vector axis, float angle )
- scaling( float scale )
- scaling( float scaleX, float scaleY, float scaleZ )
- scaling( vector onset, float scale )
- scaling( vector onset, float scaleX, float scaleY, float scaleZ )
- atrafo( matrix mat )
Details
Affine transformations are a class of transformations that include translation, rotation, scaling, and their combinations. They preserve points, straight lines, and planes. Parallel lines remain parallel after an affine transformation.
The `atrafo` data type encapsulates these transformations and allows for their application to geometric entities within trCAD. Transformations can be combined sequentially using the `>>` operator, which corresponds to matrix multiplication of their respective transformation matrices.
Several different constructors are available for creating `atrafo` objects. The identity constructor (1) creates a neutral transformation. The translation constructor (2) performs a translation along a given offset vector. The rotation constructors define rotations with an angle around a given axis vector that starts in the coordinate system origin (3) or in a given onset space point (4). The scaling constructors (5) and (7) perform a uniform scaling while constructors (6) and (8) scale into each coordinate axis individually. (7) and (8) take an onset space point defining the neutral point of the scaling. The general affine transformation constructor (9) creates a general affine transformation from a given matrix.
Each transformation can be represented by a 3x4 transformation matrix, which can be accessed through the `tmatrix` member of the `atrafo` object.
Example
make rotation( <[0.0, 0.0, 1.0]>, rad( 45 ) ) >> box()
Applies a 45-degree rotation around the Z-axis to a box.
Example
atrafo t = rotation(<[0.0, 0.0, 1.0]>, rad(45)) >> scaling(0.5)
echo(t)
Output
atrafo(<[<[0.353553,-0.353553,0,0]>,<[0.353553,0.353553,0,0]>,<[0,0,0.5,0]>]>)
Outputs the transformation matrix of a combined rotation and scaling transformation.
Casts To
- ref_dtype_string
-
- ref_dtype_modifier
-
Members
- matrix tmatrix
-
Accesses the transformation matrix of the affine transformation.
Optional Open Parameter Attributes
- bool readonly
-
Tells the user interface or frontend to disable the setting of the open parameter.
- string style
-
Specifies some limited styling instructions for the user interface or frontend.
- int expose_opar
-
Controls the visibility state of the open parameter. Possible values are -1 (do not expose), 0 (expose when requested) and +1 (expose).
Parameters
- axis
-
The vector defining the axis of rotation.
- angle
-
The angle of rotation in radians.
- onset
-
The point that remains fixed during rotation or scaling.
- scale
-
The uniform scaling factor.
- scaleX
-
The scaling factor along the X-axis.
- scaleY
-
The scaling factor along the Y-axis.
- scaleZ
-
The scaling factor along the Z-axis.
- mat
-
A 3x4 matrix defining the affine transformation.