docs: @Pure
      public static boolean intersectsHollowSphereHollowAlignedBox(
      		double sphereCenterx, double sphereCentery, double sphereCenterz, double radius,
      		double lowerx, double lowery, double lowerz,
      		double upperx, double uppery, double upperz) {
      	double r2 = radius*radius;
      	double a, b, dmin, dmax;
      	boolean face;
  
  		dmin = 0;
  		dmax = 0;
  		
  		face = false;
  
  		// X
  		a = sphereCenterx - lowerx;
  		a = a*a;
  
  		b = sphereCenterx - upperx;
  		b = b*b;
  		
  		dmax += Math.max(a, b);
  		
  		if( sphereCenterx < lowerx ) {
  			face = true;
  			dmin += a;
  		}
  		else if( sphereCenterx > upperx ) {
  			face = true;
  			dmin += b;
  		}
  		else if( Math.min(a, b) <= r2 ) {
  			face = true;
  		}
  		
  		// Y
  		a = sphereCentery - lowery;
  		a = a*a;
  
  		b = sphereCentery - uppery;
  		b = b*b;
  		
  		dmax += Math.max(a, b);
  		
  		if( sphereCentery < lowery ) {
  			face = true;
  			dmin += a;
  		}
  		else if( sphereCentery > uppery ) {
  			face = true;
  			dmin += b;
  		}
  		else if( Math.min(a, b) <= r2 ) {
  			face = true;
  		}
  		
  		// Z
  		a = sphereCenterz - lowerz;
  		a = a*a;
  
  		b = sphereCenterz - upperz;
  		b = b*b;
  		
  		dmax += Math.max(a, b);
  		
  		if( sphereCenterz < lowerz ) {
  			face = true;
  			dmin += a;
  		}
  		else if( sphereCenterz > upperz ) {
  			face = true;
  			dmin += b;
  		}
  		else if( Math.min(a, b) <= r2 ) {
  			face = true;
  		}
  		
  		return (face && ( dmin <= r2 ) && ( r2 <= dmax));
      }