#include "GL/Math.h"
BEGIN_NAMESPACE
Mat4x4f MatrixMult(Mat4x4f& a_mat1, Mat4x4f& a_mat2)
{
Mat4x4f res;
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4; ++j)
{
res.m[i*4+j] = 0;
for (int k = 0; k < 4; ++k)
res.m[i*4+j] += a_mat1.m[j*4+k] * a_mat2.m[k*4+i];
}
}
return res;
}
Vec4f Transform(Mat4x4f& a_mat, Vec4f& a_vec)
{
Vec4f res;
for (int i = 0; i < 4; ++i)
{
res.v[i] = 0;
for (int j = 0; j < 4; ++j)
{
res.v[i] += a_mat.m[j*4+i] * a_vec.v[j];
}
}
return res;
}
END_NAMESPACE