summaryrefslogtreecommitdiff
path: root/lib/stitch_plan
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stitch_plan')
-rw-r--r--lib/stitch_plan/color_block.py9
-rw-r--r--lib/stitch_plan/stitch_plan.py8
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/stitch_plan/color_block.py b/lib/stitch_plan/color_block.py
index 10d199c2..cd7b9c6d 100644
--- a/lib/stitch_plan/color_block.py
+++ b/lib/stitch_plan/color_block.py
@@ -63,6 +63,15 @@ class ColorBlock(object):
return len(self.stitches)
@property
+ def estimated_thread(self):
+ previous_stitch = self.stitches[0]
+ length = 0
+ for stitch in self.stitches[1:]:
+ length += (stitch - previous_stitch).length()
+ previous_stitch = stitch
+ return length
+
+ @property
def num_trims(self):
"""Number of trims in this color block."""
diff --git a/lib/stitch_plan/stitch_plan.py b/lib/stitch_plan/stitch_plan.py
index f6895197..a501391d 100644
--- a/lib/stitch_plan/stitch_plan.py
+++ b/lib/stitch_plan/stitch_plan.py
@@ -113,7 +113,8 @@ class StitchPlan(object):
num_stops=self.num_stops,
num_trims=self.num_trims,
num_stitches=self.num_stitches,
- bounding_box=self.bounding_box
+ bounding_box=self.bounding_box,
+ estimated_thread=self.estimated_thread
)
@property
@@ -148,6 +149,11 @@ class StitchPlan(object):
return minx, miny, maxx, maxy
@property
+ def estimated_thread(self):
+ thread_meter = sum(block.estimated_thread for block in self) / PIXELS_PER_MM / 1000
+ return round(thread_meter, 2)
+
+ @property
def dimensions(self):
minx, miny, maxx, maxy = self.bounding_box
return (maxx - minx, maxy - miny)