===============================================
Matrix - class to represent planar transformations
===============================================
Matrix is used to perform following transformations:
x1 = x * a + y * b + e
y1 = x * c + y * d + f
CONSTRUCTOR:
Matrix() - generic constructor, creates a Matrix that makes no change to coordinates
Matrix(Matrix) - copy constructor
Matrix([a, b, c, d, e, f]) - creates a Matrix and assigns coordinates from the list of float numbers
Matrix(a, b, c, d, e, f) - creates a Matrix and assigns coordinates from float numbers
ATTRIBUTES:
a, b, c, d, e, f (float) - Matrix parameters
OPERATIONS:
add - Matrix must be second operand, all parameters are added
subtract - Matrix must be second operand, all parameters are subtracted
multiply (with Matrix) - matrixes are multiplied
multiply (with float number) - all parameters are scaled by the operand
METHODS
Assign - assigns new values to a Matrix, uses the same syntax as in constructors
Add(Matrix m) - adds values of the Matrix m to current matrix
Sub(Matrix m) - subtracts values of the Matrix m from current matrix
Mul(float s) - mutiplies Matrix's parameters to s value
Transform(Matrix m) - applies Matrix m transformation to the current Matrix