diff options
Diffstat (limited to 'lib/stitch_plan')
| -rw-r--r-- | lib/stitch_plan/stitch_plan.py | 24 |
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) |
