# Rect

===============================================
Rect - base class to represent rectangle
===============================================
Integer or float values are accepted as coordinates

## CONSTRUCTOR

Rect() - generic constructor, creates a Rect with zero coordinates
Rect(Rect r) - copy constructor
Rect(Point p) - creates rectangle with one corner at (0, 0) and
another - at coordinates defined by p
Rect(Point p0, Point p1) - creates rectangle defined by the corner points
Rect(x0, y0, x1, y1) - creates a rectangle defined by the coordinates of the corner points

## ATTRIBUTES

ll (Point) - position of the left/bottom corner
ur (Point) - position of the right/top corner
x (integer or float) - horizontal position of the left corner
y (integer or float) - vertical position of the bottom corner
width (integer or float) - width of the rectangle
height (integer or float) - height of the rectangle

## OPERATIONS

add - Point or Rect must be second operand, rectangle is expanded to include
this point or rectange
multiply - second operand must be Matrix. Matrix transformation is applied
to the rectangle

## METHODS

Assign(Rect r) | (Point p0, Point p1) | (x0, y0, x1, y1) - assigns new values
to a Rect, the same as constructor
Shift(Point p) | (x, y) - shifts Rect on a position defined by p or x
and y values
Transform(Matrix m) - applies Matrix transformation to the Rect (see Matrix().__doc__)
Resize(width, height) - resizes rectangle to new width and height
Include(Rect r) | (Point p) | (x, y) - expands rectangle to include
new rectangle or point
Check(Rect r) - returns True if r overlaps current rectangle
Check(Point p) - returns True if p is insude current rectangle
Validate() - corrents rectangle's orientation