summaryrefslogtreecommitdiff
path: root/lib/stitch_plan/stitch_plan.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stitch_plan/stitch_plan.py')
-rw-r--r--lib/stitch_plan/stitch_plan.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/stitch_plan/stitch_plan.py b/lib/stitch_plan/stitch_plan.py
index 808fa626..b621ef07 100644
--- a/lib/stitch_plan/stitch_plan.py
+++ b/lib/stitch_plan/stitch_plan.py
@@ -1,11 +1,11 @@
-from .stitch import Stitch
-from .ties import add_ties
from ..svg import PIXELS_PER_MM
-from ..utils.geometry import Point
from ..threads import ThreadColor
+from ..utils.geometry import Point
+from .stitch import Stitch
+from .ties import add_ties
-def patches_to_stitch_plan(patches, collapse_len=3.0 * PIXELS_PER_MM):
+def patches_to_stitch_plan(patches, collapse_len=3.0 * PIXELS_PER_MM, disable_ties=False):
"""Convert a collection of inkstitch.element.Patch objects to a StitchPlan.
* applies instructions embedded in the Patch such as trim_after and stop_after
@@ -14,10 +14,6 @@ def patches_to_stitch_plan(patches, collapse_len=3.0 * PIXELS_PER_MM):
"""
stitch_plan = StitchPlan()
-
- if not patches:
- return stitch_plan
-
color_block = stitch_plan.new_color_block(color=patches[0].color)
for patch in patches:
@@ -56,7 +52,9 @@ def patches_to_stitch_plan(patches, collapse_len=3.0 * PIXELS_PER_MM):
del stitch_plan.color_blocks[-1]
stitch_plan.filter_duplicate_stitches()
- stitch_plan.add_ties()
+
+ if not disable_ties:
+ stitch_plan.add_ties()
return stitch_plan
@@ -72,6 +70,14 @@ class StitchPlan(object):
self.color_blocks.append(color_block)
return color_block
+ def delete_empty_color_blocks(self):
+ color_blocks = []
+ for color_block in self.color_blocks:
+ if len(color_block) > 0:
+ color_blocks.append(color_block)
+
+ self.color_blocks = color_blocks
+
def add_color_block(self, color_block):
self.color_blocks.append(color_block)