public static double[] box_box_p(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1){
		double[] result = NONE;
		double topA = FastMath.min(ay0, ay1);
		double botA = FastMath.max(ay0, ay1);
		double leftA = FastMath.min(ax0, ax1);
		double rightA = FastMath.max(ax0, ax1);
		double topB = FastMath.min(by0, by1);
		double botB = FastMath.max(by0, by1);
		double leftB = FastMath.min(bx0, bx1);
		double rightB = FastMath.max(bx0, bx1);
		
		if(botA <= topB  || botB <= topA || rightA <= leftB || rightB <= leftA)
			return result;

		double leftO = (leftA < leftB) ? leftB : leftA;
		double rightO = (rightA > rightB) ? rightB : rightA;
		double botO = (botA > botB) ? botB : botA;
		double topO = (topA < topB) ? topB : topA;
		result =  new double[] {leftO, topO, rightO, botO};
		return result;
	}