Object::setClean() now computes absolute transformation while traversing
through object parents and passes it as parameter to clean(), which is
now virtual a meant to be reimplemented instead of setClean().
Updated and greatly improved unit test.
Improved parenting test, added test for transformation. Moved deleted
functions to public section, so the compiler prints error about deleted
functions, not about private functions.
Const function shouldn̈́'t return anything with which it would be possible
to change object's internal state:
* It is possible to get non-constant pointer to itself from
parent().children() array, so parent() cannot be const function.
* The same applies to scene().
* It is also possible to get non-constant pointer to itself from
children()[0].parent(), so children() also cannot be const function.
It was overengineered and unnecessarily complicated. Now the camera is
specified only in Scene::draw(), which eliminates all the needs for
recalculating absolute object transformations on each camera
transformation change. Absolute object transformation is now computed
relative to root object or relative to camera object passed as
parameter. Because of that it is now also possible to draw the scene
using multiple cameras at once.