These two functions expect a vector of the same size as the matrix's storage vectors (float4 for a mat4f for instance) which has two major issues: - The vector must end with 1 for homogeneous coordinates to work - Passing a single scalar (mat4f::scale(0.5)) creates a matrix whose diagonal is set to that scalar, thus breaking homogeneous coordinates With this change scale and translate expect a vector who dimensionality is 1 less that of the matrix's underlying storage vectors. i.e. a float3 for mat4f.
4.5 KiB
4.5 KiB