/!\ just a draft
- All objects of the core are mathematical objects which can be displayed, either as figures or as mathematical formulas
- Hence, all objects are not conceived according to their mathematical properties in first place, but also especially to the usual "displaying rules" we use.
- base.py contains the most abstract classes :
- Copiable, mother class of all objects. Provides a deep_copy() method which ensures to create a new object completely identical to the given one
- Drawable, mother class of all geometrical objects. Provides the into_pic() method, which creates a picture of the object. All geometrical objects must implement a into_euk() method, which will create the eukleides file (.euk) to draw them. This method is used by Drawable.into_pic() to create the picture.
- Printable, mother class of all calculus objects. They all must implement the into_str() method, which tells how to display them (independently from the output's format). Note that Drawable was thought to be a Printable too, so that geometrical objects would have to implement into_str() as well. But this feature does not seem to be useful. So probably Drawable will only inherit from Copiable.
Instanciable objects :
Value --- Item --- Function --- SquareRoot
Product --- Monomial --- Expandable --- BinomialIdentity
Sum --- Polynomial
Quotient --- Fraction
I should certainly also update the documentation (I use doxygen), this would be of help...