private void setSphere(Vector3f O, Vector3f A, Vector3f B) {
        Vector3f a = A.subtract(O);
        Vector3f b = B.subtract(O);
        Vector3f acrossB = a.cross(b);

        float Denominator = 2.0f * acrossB.dot(acrossB);

        if (Denominator == 0) {
            center.set(0, 0, 0);
            radius = 0;
        } else {

            Vector3f o = acrossB.cross(a).multLocal(b.lengthSquared()).addLocal(b.cross(acrossB).multLocal(a.lengthSquared())).divideLocal(Denominator);
            radius = o.length() * RADIUS_EPSILON;
            O.add(o, center);
        }
    }
Calculates the minimum bounding sphere of 3 points. Used in welzl's
algorithm.

@param O
           The 1st point inside the sphere.
@param A
           The 2nd point inside the sphere.
@param B
           The 3rd point inside the sphere.
@see #calcWelzl(java.nio.FloatBuffer)
jme3-core/src/main/java/com/jme3/bounding/BoundingSphere.java