Command::doCommand may throw an exception that isn't handled by the active sketch handler. This may leave it in an inconsistent state and can cause a crash later.
See #14945
=======================================================================
Previous version return an reference to the smart pointer to generic Part::Geometry.
This version returns a type specific naked pointer, while ShapeGeometry keeps ownership
and memory management, so if an arc is created a Part::ArcOfCircle is returned.
================================================================
In some DSHs instead of the convenience function, the code is being duplicated because
of the need to access the geometry after pushing it to the std::vector.
This commit leverages emplace_back return reference to improve code reuse.
=================================================================
Instead of terminating the handler, as mandated before this PR by ViewProviderSketch, ViewProviderSketch
delegates the action to DrawSketchHandler.
DrawSketchHandler implements by default this terminating behaviour, but allows to override it.
DrawSketchDefaultHandler (and all tools deriving from it) implement as default behaviour to cancel if
in initial state, otherwise to reset.
===========================================================
Instead of terminating the handler, as mandated before this PR by ViewProviderSketch, ViewProviderSketch
delegates the action to DrawSketchHandler.
DrawSketchHandler implements by default this terminating behaviour, but allows to override it.
DrawSketchDefaultHandler (and all tools deriving from it) implement as default behaviour to cancel if
in initial state, otherwise to reset.
=======================================
Rewrite of the architecture to accomodate on-view parameters and to enable code reuse
between the default widget and custom widgets.