code: public Bbox union(Bbox other) {
  		if (other.getWidth() == 0 && other.getHeight() == 0 && other.getX() == 0 && other.getY() == 0) {
  			return (Bbox) clone();
  		}
  		if (width == 0 && height == 0 && x == 0 && y == 0) {
  			return (Bbox) other.clone();
  		}
  
  		double minx = other.getX() < this.getX() ? other.getX() : this.getX();
  		double maxx = other.getEndPoint().getX() > this.getEndPoint().getX() ? other.getEndPoint().getX() : this
  				.getEndPoint().getX();
  		double miny = other.getY() < this.getY() ? other.getY() : this.getY();
  		double maxy = other.getEndPoint().getY() > this.getEndPoint().getY() ? other.getEndPoint().getY() : this
  				.getEndPoint().getY();
  		return new Bbox(minx, miny, (maxx - minx), (maxy - miny));
  	}
docs: Calculates the union of 2 bounding boxes.
  
  @param other The other Bbox. Can be a bounding box with width and height equal to 0.
  @return new bbox which is the union of the parameters