The Embroidery Params filter now pops up a full GTK dialog. This alows it to
load existing values in the selected shapes and present them to the user. The
user can also load and save presets.
If selected shapes have differing values for a given param, the values are
presented in a dropdown so the user can select one to apply to all.
This lets us auto-fill regions with holes in it. Just cut the region exactly
along the fill angle to convert a region with a hole to a region without.
This:
__________________
| |
| ______ |
| | | |
| | | |
| | | |
| |______| |
|__________________|
Becomes this:
__________________
| |
| ______ |
| | | |
| | | |
===== | |
| |______| |
|__________________|
The cut ( ===== ) is less than the width of the row spacing. Any connecting
stitch that follows this path becomes hidden among the rest of the fill --
an extra row of stitching isn't visible so long as the staggers line up.
Split into classes for Fill, Stroke, and SatinColumn. Renamed params to be
the same across XML attributes and OptionParser. Added distinct stitch length
params for satin underlay. Renamed "satin underlay" to "contour underlay" and
split out "center walk underlay" and "zigzag underlay".
The code is ten times more readable, parameters make more sense, and everything
is specified by the user in millimeters. Basically, everything is way better.
The algorithm was terrible. In general, it seems to work a lot better to just
have the human choose what order things are stitched in than to try to
do it automatically.
* added "flip" option for fills to start stitching in upper left rather than right
* line up rows in abutting fills properly
* handle intersect_with_grating intersection result that is a line or single point (skip row)
* skip endpoint marker tags in SVG files (subtags look like paths)
* dashed stroke indicates running stitch (<=0.5 width still works but is deprecated)
* in running stitches, add a stitch at apex of sharp corners