matrix :: Matrix :: translate
x, y, z
# Apply a translation by `x, y, z` to this matrix fun translate(x, y, z: Float) do for i in [0..3] do self[3, i] = self[3,i] + self[0, i] * x + self[1, i] * y + self[2, i] * z end end