I'm producing three vectors like so:
Vector aXDir=Matrix.Multiply(Vector(1,0,0));
Vector aYDir=Matrix.Multiply(Vector(0,1,0));
Vector aZDir=Matrix.Multiply(Vector(0,0,1));
But later, I want to use these vectors to re-assemble the original matrix. I originally thought I could multiply three lookat matrices, but alas, unless only one axis is rotated, the values accumulate and I get an exaggerated version of the original matrix.
It's a rotation-only matrix, no translate.
Is there any way to backwards engineer my old matrix from these three vectors?
[Edit] I did try combining the three directional vectors and then producing matrix looking at the combined result. This also produced incorrect results for me.