diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/elements/element.py | 6 | ||||
| -rw-r--r-- | lib/marker.py | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/elements/element.py b/lib/elements/element.py index 84a9199b..5e8bb072 100644 --- a/lib/elements/element.py +++ b/lib/elements/element.py @@ -12,6 +12,7 @@ from inkex import bezier from ..commands import find_commands from ..debug import debug from ..i18n import _ +from ..marker import get_marker_elements_cache_key_data from ..patterns import apply_patterns, get_patterns_cache_key_data from ..svg import (PIXELS_PER_MM, apply_transforms, convert_length, get_node_transform) @@ -438,6 +439,10 @@ class EmbroideryElement(object): def _get_patterns_cache_key_data(self): return get_patterns_cache_key_data(self.node) + @cache + def _get_guides_cache_key_data(self): + return get_marker_elements_cache_key_data(self.node, "guide-line") + def _get_cache_key(self, previous_stitch): cache_key_generator = CacheKeyGenerator() cache_key_generator.update(self.__class__.__name__) @@ -447,6 +452,7 @@ class EmbroideryElement(object): cache_key_generator.update(previous_stitch) cache_key_generator.update([(c.command, c.target_point) for c in self.commands]) cache_key_generator.update(self._get_patterns_cache_key_data()) + cache_key_generator.update(self._get_guides_cache_key_data()) cache_key = cache_key_generator.get_cache_key() debug.log(f"cache key for {self.node.get('id')} {self.node.get(INKSCAPE_LABEL)} {previous_stitch}: {cache_key}") diff --git a/lib/marker.py b/lib/marker.py index 5d4637fe..977475b0 100644 --- a/lib/marker.py +++ b/lib/marker.py @@ -78,6 +78,16 @@ def get_marker_elements(node, marker, get_fills=True, get_strokes=True, get_sati return {'fill': fills, 'stroke': strokes, 'satin': satins} +def get_marker_elements_cache_key_data(node, marker): + marker_elements = get_marker_elements(node, marker, True, True, True) + + marker_elements['fill'] = [shape.wkt for shape in marker_elements['fill']] + marker_elements['stroke'] = [shape.wkt for shape in marker_elements['stroke']] + marker_elements['satin'] = [satin.csp for satin in marker_elements['satin']] + + return marker_elements + + def has_marker(node, marker=list()): if not marker: marker = MARKER |
