HMM_LinearCombineV4M4 internally does a matrix4 * vector4 operation. HMM_MulM4V4 even directly calls it to perform this exact operation. The arguments to HMM_LinearCombineV4M4 however have incorrect names making it seem like it does the opposite:
HMM_Vec4 HMM_LinearCombineV4M4(HMM_Vec4 Left, HMM_Mat4 Right)
It should look instead like:
HMM_LinearCombineM4V4(HMM_Mat4 Left, HMM_Vec4 Right)
"Matrix multiplication is computed as follows: let the matrix C be the r×c product AB of the
r×n matrix A with the n×c matrix B. Then each element cij is equal to the vector dot product of row
i of A with column j of B", from 3D Math Primer for Graphics and Game Development (F. Dunn, I. Parberry)
HMM_LinearCombineV4M4internally does amatrix4 * vector4operation.HMM_MulM4V4even directly calls it to perform this exact operation. The arguments toHMM_LinearCombineV4M4however have incorrect names making it seem like it does the opposite:HMM_Vec4 HMM_LinearCombineV4M4(HMM_Vec4 Left, HMM_Mat4 Right)
It should look instead like:
HMM_LinearCombineM4V4(HMM_Mat4 Left, HMM_Vec4 Right)"Matrix multiplication is computed as follows: let the matrix C be the r×c product AB of the
r×n matrix A with the n×c matrix B. Then each element cij is equal to the vector dot product of row
i of A with column j of B", from 3D Math Primer for Graphics and Game Development (F. Dunn, I. Parberry)