atrafo

Affine transformation data type.

Signatures

  • identity()
  • rotation( vector axis, float angle )
  • rotation( vector onset, vector axis, float angle )
  • translation( vector offset )
  • 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 tmatrix )

Details

Affine transformations are a set of space transformations that include most of the "typical" transformations like rotation, translation and scaling (see https://en.wikipedia.org/wiki/Affine_transformation). The different specific constructors can be used to create atrafo objects that represent these operations (see example 1).

The identity() constructor (1) creates a neutral transformation. The rotation() constructors defines a rotation with an angle around a given axis vector that starts in the coordinate system origin (2) or in a given onset space point. Constructor (4) performs a translation along a given offset vector. 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. Constructor (9) creates a general affine transformation from a given matrix.

An affine transformation can always be expressed by its transformation matrix. This can be accessed from an atrafo object by its member tmatrix.

Multiple affine transformations can be stacked together by using the << operator. This corresponds to the multiplication of the transformations' matrices. The result is therefore an affine transformation itself (see example 2).

Example

 make rotation( <[ 0.0, 0.0, 1.0 ]>, rad( 45 ) ) >> 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]>]>) 

Casts To

string
modifier

Members

matrix tmatrix

Returns the transformation matrix of the affine transformation.

Parameters

axis

Vector that determines the rotation axis.

angle

The rotation angle (in rad). The rotation is right handed for positive and left handed for negative values.

onset

Space point that acts as alternative origin for rotation or scaling transformations.

scale

Uniform scaling factor s. For |s| > 1 the transformation is enlarging, for |s| < 1 it is a shrinking transformation. Negative values flip the object.

scaleX

Scaling factor in X direction.

scaleY

Scaling factor in Y direction.

scaleZ

Scaling factor in Y direction.

See also