Gire un objeto 3D en 3 ejes en JavaFX correctamente

Entonces, el método que he usado hasta ahora para rotar objetos en JavaFX fue que lo coloqué en 3 grupos, cada uno de ellos con una rotación adjunta y bloqueada en un solo eje de esta manera:

    Rotate heading, roll, pitch;
    Group normalrotate, rollrotate, verticalrotate;

    heading.setAxis(new Point3D(0,1,0));
    normalrotate.getTransforms().add(heading);

    roll.setAxis(new Point3D(0,0,1));
    rollrotate.getTransforms().add(roll);

    pitch.setAxis(new Point3D(1,0,0));
    verticalrotate.getTransforms().add(pitch);

e hice un setAngle () por cada vez que necesitaba rotar el objeto. Esto funcionó muy bien solo para rumbo y balanceo hasta que decidí que también necesitaba lanzar. Ahora, muchos tutoriales para OpenGL y similares dicen que las mezclas rotatorias o los cuaterniones son los mejores para este tipo de rotaciones, pero el javadoc carece de datos útiles que lo registren.

Ejemplo: lo que sucede cuando giro un objeto 180 grados en el eje y (y lo que debería haber sucedido en azul transparente) ¿Me estoy perdiendo de algo? Toda ayuda será apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta