Math module

Matrix4x3

structSource

A 3x4 affine transform, row-major: three rows of four (_11 to _34), so there is no bottom row and the transform is a rotation or scale part in the left 3x3 and a translation in _14, _24, _34. Rows are Vector4, columns have three entries. Matrix4x3 * Vector4 gives a Vector3, and Matrix4x3 * Matrix4x3 composes two transforms.

ExampleOpen in playground ↗
m := Matrix4x3_Identity;
m._14 = 7;
assert(m * xyzw(1, 2, 3, 1) == xyz(8, 2, 3)); // w = 1 picks up the translation
assert(m * xyzw(1, 2, 3, 0) == xyz(1, 2, 3)); // w = 0 is a direction

Fields

_11: float
_12: float
_13: float
_14: float
_21: float
_22: float
_23: float
_24: float
_31: float
_32: float
_33: float
_34: float
v: [3] Vector4
coef: [3][4] float
floats: [12] float

See also