I've been coding my own math library and I got a bug when I create a Matrix from a rotation across the X, Y and Z axises. The bug is that it also scales my vectors. I know it might be hard to understand my code, but you are my only hope left (I checked and checked again my code a lot of times) so here's my code:
static Matrix4x4<T> CreateFromRotationXYZ_S(const T &radiansX, const T &radiansY, const T &radiansZ)
{
Matrix4x4<T> result;
result.m11 = cos(radiansY) * cos(radiansZ);
result.m12 = cos(radiansY) * sin(radiansZ);
result.m13 = sin(radiansY);
result.m14 = 0;
result.m21 = sin(radiansX) * -sin(radiansY) * cos(radiansZ) + cos(radiansX) * -sin(radiansZ) + sin(radiansX) * cos(radiansY);
result.m22 = sin(radiansX) * -sin(radiansY) * sin(radiansZ) + cos(radiansX) * cos(radiansZ) + sin(radiansX) * cos(radiansX);
result.m23 = sin(radiansX) * cos(radiansY);
result.m24 = 0;
result.m31 = cos(radiansX) * -sin(radiansY) * cos(radiansZ) + sin(radiansX) * sin(radiansZ);
result.m32 = cos(radiansX) * -sin(radiansY) * sin(radiansZ) + -sin(radiansX) * cos(radiansZ);
result.m33 = cos(radiansX) * cos(radiansY);
result.m34 = 0;
result.m41 = 0;
result.m42 = 0;
result.m43 = 0;
result.m44 = 1;
return result;
}
Thank you
