Matrix.compose constructor
Matrix.compose(
- Vector3 translation,
- Quaternion rotation,
- Vector3 scale
Returns a transformation matrix composed of a rotational, translational and scaling components.
Implementation
factory Matrix.compose(
Vector3 translation,
Quaternion rotation,
Vector3 scale,
) {
Vector3 right = .vec3(1.0, 0.0, 0.0);
Vector3 up = .vec3(0.0, 1.0, 0.0);
Vector3 forward = .vec3(0.0, 0.0, 1.0);
right = right.scale(scale.x);
up = up.scale(scale.y);
forward = forward.scale(scale.z);
right = right.rotateByQuaternion(rotation);
up = up.rotateByQuaternion(rotation);
forward = forward.rotateByQuaternion(rotation);
return .mat4RowMajor(
right.x, up.x, forward.x, translation.x,
right.y, up.y, forward.y, translation.y,
right.z, up.z, forward.z, translation.z,
0.0, 0.0, 0.0, 1.0,
);
}