When using MatrixToAnglesAndScale the order of angles is wrong.
vector mat[3]; Math3D.AnglesToMatrix( "1 2 3", mat ); SCR_Math3D.ScaleMatrix(mat, 5); vector ang; float scale = Math3D.MatrixToAnglesAndScale(mat, ang); Print(ang); Print(scale);
SCRIPT : vector ang = <2,1,3>
SCRIPT : float scale = 5
The expected output would have been <1,2,3>.
Even worse when using MatrixToAngles it just does whatever happens here in the correct order but the wrong value
vector mat[3]; Math3D.AnglesToMatrix( "1 2 3", mat ); SCR_Math3D.ScaleMatrix(mat, 5); vector ang = Math3D.MatrixToAngles(mat); Print(ang);
SCRIPT : vector ang = <1,10.0494,3>
The expected output would have been <1,2,3>.