public static boolean intersect(BoundingBox bbox, Vector3f center, float radius) {
        assert Vector3f.isValidVector(center) && Vector3f.isValidVector(bbox.center);

        // Arvo's algorithm
        float distSqr = radius * radius;

        float minX = bbox.center.x - bbox.xExtent;
        float maxX = bbox.center.x + bbox.xExtent;

        float minY = bbox.center.y - bbox.yExtent;
        float maxY = bbox.center.y + bbox.yExtent;

        float minZ = bbox.center.z - bbox.zExtent;
        float maxZ = bbox.center.z + bbox.zExtent;

        if (center.x < minX)
            distSqr -= FastMath.sqr(center.x - minX);
        else if (center.x > maxX)
            distSqr -= FastMath.sqr(center.x - maxX);

        if (center.y < minY)
            distSqr -= FastMath.sqr(center.y - minY);
        else if (center.y > maxY)
            distSqr -= FastMath.sqr(center.y - maxY);

        if (center.z < minZ)
            distSqr -= FastMath.sqr(center.z - minZ);
        else if (center.z > maxZ)
            distSqr -= FastMath.sqr(center.z - maxZ);

        return distSqr > 0;
    }
This class includes some utility methods for computing intersection
between bounding volumes and triangles.

@author Kirill
jme3-core/src/main/java/com/jme3/bounding/Intersection.java