FreeCAD: staging ff72f02d

Author Committer Branch Timestamp Parent
Zheng, Lei Zheng, Lei staging 2019-07-06 09:10:17 staging e988af81
Changeset Base: misc patches

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.
mod - src/Base/Interpreter.h Diff File
mod - src/Base/Matrix.cpp Diff File
mod - src/Base/Matrix.h Diff File
mod - src/Base/MatrixPy.xml Diff File
mod - src/Base/MatrixPyImp.cpp Diff File
mod - src/Base/PlacementPy.xml Diff File
mod - src/Base/PlacementPyImp.cpp Diff File
mod - src/Base/Rotation.cpp Diff File
mod - src/Base/Rotation.h Diff File
mod - src/Base/Tools.h Diff File
mod - src/Base/Tools2D.cpp Diff File
mod - src/Base/Tools2D.h Diff File