code: public Bbox intersection(Bbox other) {
  		if (!this.intersects(other)) {
  			return null;
  		} else {
  			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: Computes the intersection of this bounding box with the specified bounding box.
  
  @param other
  Another Bbox.
  @return bounding box of intersection or null if they do not intersect.