diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/elements/satin_column.py | 21 | ||||
| -rw-r--r-- | lib/svg/tags.py | 1 |
2 files changed, 20 insertions, 2 deletions
diff --git a/lib/elements/satin_column.py b/lib/elements/satin_column.py index 8c39b4d2..1d856e10 100644 --- a/lib/elements/satin_column.py +++ b/lib/elements/satin_column.py @@ -212,12 +212,24 @@ class SatinColumn(EmbroideryElement): @property @param( + 'reverse_one_rail', + _('Reverse one rail'), + tooltip=_('Enabling this may help if your satin renders very strangely.'), + type='boolean', + default='false', + sort_index=10) + def reverse_one_rail(self): + return self.get_boolean_param('reverse_one_rail', False) + + @property + @param( 'swap_satin_rails', _('Swap rails'), tooltip=_('Swaps the first and second rails of the satin column, ' 'affecting which side the thread finished on as well as any sided properties'), type='boolean', - default='false') + default='false', + sort_index=11) def swap_rails(self): return self.get_boolean_param('swap_satin_rails', False) @@ -381,7 +393,12 @@ class SatinColumn(EmbroideryElement): @cache def flattened_rails(self): """The rails, as LineStrings.""" - return tuple(shgeo.LineString(self.flatten_subpath(rail)) for rail in self.rails) + paths = [shgeo.LineString(self.flatten_subpath(rail)) for rail in self.rails] + + if paths and self.reverse_one_rail: + paths[0] = shgeo.LineString(paths[0].coords[::-1]) + + return tuple(paths) @property @cache diff --git a/lib/svg/tags.py b/lib/svg/tags.py index 7b0da93d..5f87bee4 100644 --- a/lib/svg/tags.py +++ b/lib/svg/tags.py @@ -120,6 +120,7 @@ inkstitch_attribs = [ 'short_stitch_distance_mm', 'short_stitch_inset', 'running_stitch_length_mm', + 'reverse_one_rail', 'swap_satin_rails', 'center_walk_underlay', 'center_walk_underlay_stitch_length_mm', |
