public boolean test(float minX, float minY, float minZ, float maxX, float maxY, float maxZ) {
        // tableswitch with dense and consecutive cases (will be a simple jump based on the switch argument)
        switch (classification) {
        case 0: // 0b000000: // MMM
            return MMM(minX, minY, minZ, maxX, maxY, maxZ);
        case 1: // 0b000001: // OMM
            return OMM(minX, minY, minZ, maxX, maxY, maxZ);
        case 2: // 0b000010: // PMM
            return PMM(minX, minY, minZ, maxX, maxY, maxZ);
        case 3: // 0b000011: // not used
            return false;
        case 4: // 0b000100: // MOM 
            return MOM(minX, minY, minZ, maxX, maxY, maxZ);
        case 5: // 0b000101: // OOM
            return OOM(minX, minY, minZ, maxX, maxY);
        case 6: // 0b000110: // POM
            return POM(minX, minY, minZ, maxX, maxY, maxZ);
        case 7: // 0b000111: // not used
            return false;
        case 8: // 0b001000: // MPM
            return MPM(minX, minY, minZ, maxX, maxY, maxZ);
        case 9: // 0b001001: // OPM
            return OPM(minX, minY, minZ, maxX, maxY, maxZ);
        case 10: // 0b001010: // PPM
            return PPM(minX, minY, minZ, maxX, maxY, maxZ);
        case 11: // 0b001011: // not used
        case 12: // 0b001100: // not used
        case 13: // 0b001101: // not used
        case 14: // 0b001110: // not used
        case 15: // 0b001111: // not used
            return false;
        case 16: // 0b010000: // MMO
            return MMO(minX, minY, minZ, maxX, maxY, maxZ);
        case 17: // 0b010001: // OMO
            return OMO(minX, minY, minZ, maxX, maxZ);
        case 18: // 0b010010: // PMO
            return PMO(minX, minY, minZ, maxX, maxY, maxZ);
        case 19: // 0b010011: // not used
            return false;
        case 20: // 0b010100: // MOO
            return MOO(minX, minY, minZ, maxY, maxZ);
        case 21: // 0b010101: // OOO
            return false; // <- degenerate case
        case 22: // 0b010110: // POO
            return POO(minY, minZ, maxX, maxY, maxZ);
        case 23: // 0b010111: // not used
            return false;
        case 24: // 0b011000: // MPO
            return MPO(minX, minY, minZ, maxX, maxY, maxZ);
        case 25: // 0b011001: // OPO
            return OPO(minX, minZ, maxX, maxY, maxZ);
        case 26: // 0b011010: // PPO
            return PPO(minX, minY, minZ, maxX, maxY, maxZ);
        case 27: // 0b011011: // not used
        case 28: // 0b011100: // not used
        case 29: // 0b011101: // not used
        case 30: // 0b011110: // not used
        case 31: // 0b011111: // not used
            return false;
        case 32: // 0b100000: // MMP
            return MMP(minX, minY, minZ, maxX, maxY, maxZ);
        case 33: // 0b100001: // OMP
            return OMP(minX, minY, minZ, maxX, maxY, maxZ);
        case 34: // 0b100010: // PMP
            return PMP(minX, minY, minZ, maxX, maxY, maxZ);
        case 35: // 0b100011: // not used
            return false;
        case 36: // 0b100100: // MOP
            return MOP(minX, minY, minZ, maxX, maxY, maxZ);
        case 37: // 0b100101: // OOP
            return OOP(minX, minY, maxX, maxY, maxZ);
        case 38: // 0b100110: // POP
            return POP(minX, minY, minZ, maxX, maxY, maxZ);
        case 39: // 0b100111: // not used
            return false;
        case 40: // 0b101000: // MPP
            return MPP(minX, minY, minZ, maxX, maxY, maxZ);
        case 41: // 0b101001: // OPP
            return OPP(minX, minY, minZ, maxX, maxY, maxZ);
        case 42: // 0b101010: // PPP
            return PPP(minX, minY, minZ, maxX, maxY, maxZ);
        default:
            return false;
        }
    }
public boolean test ( float minX , float minY , float minZ , float maxX , float maxY , float maxZ ) { switch ( classification ) { case 0 : return MMM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 1 : return OMM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 2 : return PMM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 3 : return false ; case 4 : return MOM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 5 : return OOM ( minX , minY , minZ , maxX , maxY ) ; case 6 : return POM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 7 : return false ; case 8 : return MPM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 9 : return OPM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 10 : return PPM ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 11 : case 12 : case 13 : case 14 : case 15 : return false ; case 16 : return MMO ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 17 : return OMO ( minX , minY , minZ , maxX , maxZ ) ; case 18 : return PMO ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 19 : return false ; case 20 : return MOO ( minX , minY , minZ , maxY , maxZ ) ; case 21 : return false ; case 22 : return POO ( minY , minZ , maxX , maxY , maxZ ) ; case 23 : return false ; case 24 : return MPO ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 25 : return OPO ( minX , minZ , maxX , maxY , maxZ ) ; case 26 : return PPO ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 27 : case 28 : case 29 : case 30 : case 31 : return false ; case 32 : return MMP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 33 : return OMP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 34 : return PMP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 35 : return false ; case 36 : return MOP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 37 : return OOP ( minX , minY , maxX , maxY , maxZ ) ; case 38 : return POP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 39 : return false ; case 40 : return MPP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 41 : return OPP ( minX , minY , minZ , maxX , maxY , maxZ ) ; case 42 : return PPP ( minX , minY , minZ , maxX , maxY , maxZ ) ; default : return false ; } }
Test whether the ray stored in this {@link RayAabIntersection} intersect the axis-aligned box
given via its minimum corner <code>(minX, minY, minZ)</code> and its maximum corner <code>(maxX, maxY, maxZ)</code>.
<p>
This implementation uses a tableswitch to dispatch to the correct intersection method.
<p>
This method is thread-safe and can be used to test many axis-aligned boxes concurrently.

@param minX
the x coordinate of the minimum corner
@param minY
the y coordinate of the minimum corner
@param minZ
the z coordinate of the minimum corner
@param maxX
the x coordinate of the maximum corner
@param maxY
the y coordinate of the maximum corner
@param maxZ
the z coordinate of the maximum corner
@return <code>true</code> iff the ray intersects the given axis-aligned box; <code>false</code> otherwise