rendered paste body public static boolean intersectBB( Vector3 min, Vector3 max, Vector3 origin, Vector3 direction )
{
float txmin, txmax, tymin, tymax, tzmin, tzmax;
direction.x += 0.000001;
direction.y += 0.000001;
direction.z += 0.000001;
if( direction.x >= 0 )
{
txmin = ( min.x - origin.x ) / direction.x;
txmax = ( max.x - origin.x ) / direction.x;
}
else
{
txmin = ( max.x - origin.x ) / direction.x;
txmax = ( min.x - origin.x ) / direction.x;
}
if( direction.y >= 0 )
{
tymin = ( min.y - origin.y ) / direction.y;
tymax = ( max.y - origin.y ) / direction.y;
}
else
{
tymin = ( max.y - origin.y ) / direction.y;
tymax = ( min.y - origin.y ) / direction.y;
}
if( direction.z >= 0 )
{
tzmin = ( min.z - origin.z ) / direction.z;
tzmax = ( max.z - origin.z ) / direction.z;
}
else
{
tzmin = ( max.z - origin.z ) / direction.z;
tzmax = ( min.z - origin.z ) / direction.z;
}
if( ( txmin > tzmax ) | ( tymin > txmax ) | ( tzmin > tymax ) )
{
return false;
}
else
{
System.out.println( "Tx: " + txmin + ", " + txmax );
System.out.println( "Ty: " + tymin + ", " + tymax );
System.out.println( "Tz: " + tzmin + ", " + tzmax );
return true;
}
}