Hello
(Excuse me, my english are not the best.)
From class View, method getBackgroundTransform()
i always got a SingularMatrixException.
I only use orthogonal matrixes, so that an
inverted matrix can’t be singulär.
The exception occurs mostly, if a have rotated to
a angle of PI (3,14…).
On this angle (or nearby) also the ‘FieldOfView’ for the
background changes dramatically
The code (from Xiith3d) is:
Quat4f rot = new Quat4f();
Matrix4f translateMatrix = new Matrix4f();
Matrix4f rotMatrix = new Matrix4f();
public Transform3D getBackgroundTransform()
{
rotMatrix.setIdentity();
translateMatrix.setIdentity();
getTransform().get(rot);
rotMatrix.set(rot);
// Why that?????
translateMatrix.set(new Vector3f(0, 4f, 0));
rotMatrix.mul(translateMatrix);
backgroundTransform.set(rotMatrix);
// I know, if the determinant from rotMatrix
// is zero, there is no inverted matrix from rotMatrix
// If rotMatrix a product from 2 orthogonal
// matrixes, how it is possible, that rotMatrix
// can have a determinant that is zero???
backgroundTransform.invert();
backgroundTransform.transpose();
return backgroundTransform;
}
Is there another solution for that problem???
What can i do?? Or have i overseen something??
That problem occurs only, if i use a background.