Menu

Core Objects

Nicolas Hainaux
Attachments
all_pics.png (43901 bytes)
all_pics__smaller.png (72870 bytes)
There is a newer version of this page. You can find it here.

Now, here are some details about the core :
* The most important thing is that mathmaker is not a software intended to compute mathematical stuff, but to display it. This is the reason why the core is quite complex : the human rules we use to write maths are full of exceptions and strange details we don't notice usually because we're familiar to them. To re-create these writing rules on a computer is not really simple !
* So, all objects of the core are mathematical objects which can be represented, either as figures or as mathematical formulas
* Hence, all objects are not conceived according to their mathematical properties first, but according to their "displaying rules"
* 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.
*

I should certainly also update the documentation (I use doxygen), this would be of help...


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.