The new material related properties (Density, Volume and Mass) must be ignored by the `props_changed_placement_only` function.
Without this moving a Draft_Point will fail for example.
* Draft: make_sketch.py: Use sketcher methods to add constraints
A sketch object has its own methods to add coincident, horizontal and vertical constraints. Using those methods allows to simplify the make_sketch.py code. The new code applies the mentioned constraints to the whole sketch, instead of per object. The old code would not add coincident constraints between seperate, but connected, objects. the new code does.
Note that the code for point objects (not changed in this PR) does not work properly.
* Fix 2 issues
* The Sketcher detect functions need a tolerance argument.
* obj.Shape.copy() does not work properly for a Draft_Point. As a workaround a Part Vertex is created instead.
Refer to discussion at -
https://github.com/FreeCAD/FreeCAD/pull/18651https://github.com/FreeCAD/FreeCAD/issues/16409
Wall should do without Base. Base validity tested in execute() prevented the desired and documented behaviour.
EnsureBase() is remarked out in execute() and to be run in getExtrusionData(). With this fix, if there is no Base, or Base is not valid, Wall would be created as declared.
This fixes a case when in case of rootObj being Link placement was not
calculated correctly due to not changing of the document. While for
original use it was fine as this was mostly used in case where there was
defined non-link root for general case Links can be root objects of the
document.
This adds a simple quality of life helper returning center of gravity as
std::optional instead of C style method accepting reference and
returning bool to indicate method success.
This fixes potantial crash that can happen on certain platforms like
macOS due to `typeid(T).name()` returning different pointers to string
which does not happen on all platforms.
This commit renames methods of ServiceProvider to be easier to
understand. It also replaces the misleading singleton with more correct
here global instance of class.
Some Draft test files contain only dummy tests (`aux.fake_function`). Running them will just open a new file and then immediately close it. This can result in issues with code that is called with a delay. See #18679. Disabling these tests by commenting them out avoids this.