Refactor "Clean up path" extension
What does the merge request do?
- Does not convert everything to cubic anymore, only segments which are touched by the extension
- Fix node joining at the end of subpath
- General refactoring to remove slow or convoluted logic Fixes #606
Implementation notes
Basically rewrote the entire thing. Mypy and pylint are now happy with it, and cut about 150 lines of logic.
The test files have been checked; the output is in most cases (except where detailed above) identical to before, but when joining subpaths, the resulting subpath order can have changed (let's say we join 1 and 3, this previously replaced subpath 3 (and 1 was deleted, placing 2 first), now we join both as subpath 1). For closed subpaths, this means that the results are identical up to re-enumeration of the nodes.
Summary for release notes
The Clean Up Path extension is now more robust and faster.
Checklist
-
Add unit tests (if applicable) -
Changes to inkex/
are well documented -
Clean merge request history
Edited by Jonathan Neuhauser