if (Global.flyMode) {
// gravitation
Point3D axis = nav.viewer.crossproduct(nav.getDirection()).normalize();
float matrix[] = new float[16];
Quaternion quat = new Quaternion();
quat.createFromAxisAngle((float) axis.x, (float) axis.y, (float) axis.z, -1);
quat.createMatrix(matrix);
Matrix mMatrix = new Matrix(matrix);
nav.setDirection(mMatrix.multvector(nav.getDirection()));
nav.setUp(mMatrix.multvector(nav.getUp()));