# Module rs_pbrt::core::transform

Expand description

In general, transformations make it possible to work in the most convenient coordinate space.

### 4 x 4 Matrices

The Matrix4x4 structure provides a low-level representation of 4 x 4 matrices. It is an integral part of the Transform class.

### Transformations

In general a transformation is a mapping from points to points and from vectors to vectors. When a new Transform is created, it defaults to the identity transformation - the transformation that maps each point and each vector to itself.

#### Translations

One of the simplest transformations is the translation transformation. Translations only affect points, leaving vectors unchanged.

#### Scaling

Another basic transformations is the scale transformation. We can differentiate between uniform scaling, where all three scale factors have the same value, and nonuniform scaling, where they may have different values.

#### X, Y, And Z Axis Rotations

Another useful type of transformation is the rotation transformation.

#### Rotation Around an Arbitrary Axis

We also provide a routine to compute the transformation that represents rotation around an arbitrary axis.

#### The Look-At Transformation

The look-at transformation is particularly useful for placing a camera in the scene. The caller specifies the desired position of the camera, a point the camera is looking at, and an “up” vector that orients the camera along the viewing direction implied by the first two parameters. All of these values are given in world space coordinates. The look-at construction then gives a transformation between camera space and world space.

### Quaternions

Quaternions were originally invented by Sir William Hamilton in 1843 as a generalization of complex numbers (2 dimensions) to four dimensions.

## Functions

The product of two matrices.

Finds the closed-form solution of a 2x2 linear system.