slightly optimized sphere getIntersections