FreeCAD: master 2197db04

Author Committer Branch Timestamp Parent
abdullah abdullahtahiriyo master 2020-11-27 16:54:12 master 95c1a262
Changeset Sketcher: Viewprovider B-Spline pole representation factor

==========================================================

Previously for Weights, ViewProviderSketch used getScaleFactor. This caused that upon zoom change
the Weights would not increase progresively, rather the would grow on the next redraw. Additionally,
upon substantial zoom out, the poles would grow several times bigger than the B-Spline.

This commit uses a new geometry extension intended only for ViewProviderSketch, to store a geometry
specific representation scale factor. This is calculated as a function of the B-Spline length. The
extension does not serialise to disk. It is just intended for runtime.

Dragging from the edge when the radius is constrained gives a wrong cosmetic result, because the representation circle and the
real value of the weight are different (by a scale factor). This commit prevents dragging on the edge in the most representative
cases where the radius is constrained.
mod - src/Mod/Sketcher/App/SketchGeometryExtension.h Diff File
mod - src/Mod/Sketcher/Gui/AppSketcherGui.cpp Diff File
mod - src/Mod/Sketcher/Gui/CMakeLists.txt Diff File
mod - src/Mod/Sketcher/Gui/ViewProviderSketch.cpp Diff File
add - src/Mod/Sketcher/Gui/ViewProviderSketchGeometryExtension.cpp Diff File
add - src/Mod/Sketcher/Gui/ViewProviderSketchGeometryExtension.h Diff File