float matrix[] = new float[16];
Quaternion quat = new Quaternion();
quat.createFromAxisAngle((float) isect.x, (float) isect.y, (float) isect.z, angle);
quat.createMatrix(matrix);
Matrix mMatrix = new Matrix(matrix);
direction = mMatrix.multvector(direction);
up = mMatrix.multvector(up);
dirToIsect = mMatrix.multvector(dirToIsect);
viewer = isect.sub(dirToIsect);
return true;
}