* If all column vectors of the 3x3 sub-matrix are equal the function incorrectly claims that it's uniform scaling.
* Detect also non-uniform scaling and if was applied from the left or right side
* Replace the int with an enum and expose it to Python
* Add several new unit tests
Convenience macros/function (in Interpreter.h)
* FC_PY_GetObject/Callable(), look for callables in a python object,
which will be used in future patch to improve performance in various
python observer/features.
* pyCall(WithKeywords)(), helper function to invoke the callable
Matrix4D:
* hasScale(), check if there is any scale in the transformation. If so,
further check if the scale is uniform or not. This will be used in
future patch for Part::TopoShape to decide which type of transform to
apply.
Placement:
* translate/rotate(), new convenience API
Rotation:
* isSame/multiVec(), new convenience API
Polygon2d:
* Intersect(), GetCenter(), new convenience API.
FlagToggler:
* New class for exception safe flag toggling, similar to StateLocker
but with template (actually, FlagToggler is added earlier by me).
BitsetLocker:
* New class for exception manipulation of a std::bitset variable.