* add precision Parameter for importSVG to preferences * rewrite svgpath import reorganize the existing svg interpretation code snippets by dividing the responsibilities for data provision and actual shape generation. That bears the opportunity to optimize the resulting construction data regarding consistency and precision. * create cuts from inner paths organize paths in a tree structure where completely contained paths are children of their sorrounding paths In a second step the even depth paths are cut with their respective (uneven depth) children. * move svg path import logic into its own module * Restructure how the import result is controlled by preferences. * reintroduce alternative transform function Using transformGeometry() on shapes results in degenerations like lines mutating to bsplines of 1st order. For non-orthogonal Transformations this can't be avoided. But for orthogonal transformations (the majority) we can apply those transformations without degeneration. The necessary function including fallback to transformGeometry() is already in the code but was disabled due to a regression. See: https://tracker.freecad.org/view.php?id=2062 Associated commits:f045df1e2509e59bd4f3cb72I reactivate the code since the degeneration of paths seems a bigger issue to me than misformed svg files producing incorrect measurements. Degenrated paths are often the culprit for later arising 3D-calculation errors. * avoid path degeneration by keeping scale transformations uniform * repair style application on shapes the style should be based on the configured svgstyle mode in the svgimport preferences. * improve logging of face generation. * refactor: rename _precision_step to _tolerance naming according to example set in draft utils. * fix: indentation * spelling
2020 February
These files provide read only resources for the workbench.
icons/: SVG images to use as icons.patterns/: in SVG, to fill closed shapes.translations/: translation files generated from Qt tools and Crowdin.ui/: Qt user interface files made with QtCreator, and which connect to the corresponding modules indrafttaskpanels/.
All files in this directory should be read-only, as they are not meant to be executed. They are only meant to be read by the program.
The Draft.qrc file lists all resources. This file is used
to compile the resources into a single Draft_rc.py file
which can then be imported in the modules of the workbench
to provide the correct resource at run time.