code: public Bbox transform(Matrix t) {
  		Coordinate c1 = transform(t, new Coordinate(x, y));
  		Coordinate c2 = transform(t, new Coordinate(x + width, y + height));
  		Coordinate origin = new Coordinate(Math.min(c1.getX(), c2.getX()), Math.min(c1.getY(), c2.getY()));
  		Coordinate endPoint = new Coordinate(Math.max(c1.getX(), c2.getX()), Math.max(c1.getY(), c2.getY()));
  		return new Bbox(origin.getX(), origin.getY(), endPoint.getX() - origin.getX(), endPoint.getY() - origin.getY());
  	}
docs: Create a new bounds by transforming this bounds with the specified tranformation matrix.
  
  @param t
  the transformation matrix
  @return the transformed bounds