* remove unused flatten_subpath()
* there will always be two rails here
* handle degenerate zero-length sections
* remove unused SatinColumn.merge()
* mark merge() as private and adjust docstring
* fix issue with bad color names and define element colors at one place and reuse
* fix bad tartan color
* verify color in gradient block
* add thread color tests
* use default color behavior for elements linked to non-existing definitions (gradients)
* Added mypy change for tests (authored by: CapellanCitizen)
* multicolor satin (windows): apply settings in spinctrldouble when they hit enter
* enable nearest points for multicolor satin
---------
Co-authored-by: CapellanCitizen
Add a mode to running stitch that uses randomized phase and stitch length instead of even spacing. This greatly reduces moire effects when stitching closely-spaced curves in running-stitch-based fills.
Add option for randomized running stitch to:
ripple stitch
circular fill
contour fill
guided fill
auto-fill
When is randomization is not selected, ripple stitch will use even running stitch when staggers are set to 0 (default) and the stagger algorithm from guided fill (which does not look nice with a stagger period of 0) when staggers is nonzero.
Also includes fix for satin contour underlays (missing tolerance default) mentioned in #2814. This sets the default tolerance to 0.2mm, which is the largest tolerance guaranteed to be backwards-compatible with existing designs using the default inset of 0.4mm.
Original commits:
* fix satin underlay tolerance default
* Add randomized running stitch, make available in ripple stitch, circular, and contour
* add randomized guided fill
* make ripple stitch use even stitching when not staggering or randomizing.
* add random auto-fill and switch jitter parameter to a percentage (matches satin)
* fix comments
* replace jumps by running stitches
- this modify the contour underlay by adding a running stitch to travel from first side to second side
- it also add running stitches between underlays and between underlay and final satin stitches
* rename patch to stitch_group
* Update satin_column.py
add a function to avoid repetitive code