Analytic ray-vs-box (slab test), replacing the generic GJK convex cast for boxes. Not an
approximation: the gjk path already casts against a sharp box of |scale|·halfExtents with zero
convex radius (setBoxSupport under INCLUDE_CONVEX_RADIUS), so this is bit-equivalent geometry,
exact rather than iterated to a 1e-3 tolerance. Reporting matches castRayVsConvex (entry hit,
treatConvexAsSolid gate); the hit carries no normal, matching CastRayHit.
Analytic ray-vs-box (slab test), replacing the generic GJK convex cast for boxes. Not an approximation: the gjk path already casts against a sharp box of |scale|·halfExtents with zero convex radius (setBoxSupport under INCLUDE_CONVEX_RADIUS), so this is bit-equivalent geometry, exact rather than iterated to a 1e-3 tolerance. Reporting matches castRayVsConvex (entry hit, treatConvexAsSolid gate); the hit carries no normal, matching CastRayHit.