code: int _envelopeSide(Point2D pt) {
  
  		if (isEmpty())
  			return -1;
  
  		double boundaryDist = _boundaryDistance(pt);
  		double height = ymax - ymin;
  		double width = xmax - xmin;
  
  		if (boundaryDist < height)
  			return 0;
  
  		if ((boundaryDist -= height) < width)
  			return 1;
  
  		return boundaryDist - width < height ? 2 : 3;
  	}
docs: returns 0,..3 depending on which side pt lies.