diff options
| author | Lex Neva <github.com@lexneva.name> | 2022-08-06 22:59:00 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2023-02-18 22:34:47 -0500 |
| commit | aa65a2bf3fb747dc89e2d905f1fc45b269b5cab4 (patch) | |
| tree | 5592d1cbcfe92b5302993ddc9b68ad108a5083d9 | |
| parent | 2865f4161e4b2e8dc63177ef60a83820ea4f761d (diff) | |
include guides in cache key
| -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 |
