docs: @Pure
      public static boolean intersectsSolidSphereHollowAlignedBox(
      		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, dmin;
      	boolean face;
  
  		dmin = 0;
  		
  		face = false;
  
  		// X
  		if ( sphereCenterx < lowerx ) {
  			face = true;
  			a = sphereCenterx - lowerx;
  			dmin += a*a;
  		} else if ( sphereCenterx > upperx ) {
  			face = true;
  			a = sphereCenterx - upperx;
  			dmin += a*a;     
  		} else if ( sphereCenterx - lowerx <= radius ) {
  			face = true;
  		} else if ( upperx - sphereCenterx <= radius ) {
  			face = true;
  		}
  		
  		// Y
  		if ( sphereCentery < lowery ) {
  			face = true;
  			a = sphereCentery - lowery;
  			dmin += a*a;
  		}
  		else if ( sphereCentery > uppery ) {
  			face = true;
  			a = sphereCentery - uppery;
  			dmin += a*a;     
  		}
  		else if ( sphereCentery - lowery <= radius ) face = true;
  		else if ( uppery - sphereCentery <= radius ) face = true;
  		
  		// Z
  		if ( sphereCenterz < lowerz ) {
  			face = true;
  			a = sphereCenterz - lowerz;
  			dmin += a*a;
  		}
  		else if ( sphereCenterz > upperz ) {
  			face = true;
  			a = sphereCenterz - upperz;
  			dmin += a*a;     
  		}
  		else if ( sphereCenterz - lowerz <= radius ) face = true;
  		else if ( upperz - sphereCenterz <= radius ) face = true;
  		
  		return ( face && ( dmin <= r2 ) );
      }