if (ray.direction().z() != 0.0) {
t = (box.minimumZ() - ray.origin().z()) / ray.direction().z();
if (t > 0.0) {
p = ray.pointAt(t);
if (box.minimumX() < p.x() && p.x() < box.maximumX() && box.minimumY() < p.y() && p.y() < box.maximumY()) {
Intersection x = super.newIntersection(ray, t, ray.direction().z() > 0.0, BOX_SURFACE_MIN_Z)
.setLocation(p);
recorder.record(x);
if (++n == 2) return;
}