diff options
| -rw-r--r-- | lib/elements/fill_stitch.py | 2 | ||||
| -rw-r--r-- | lib/stitches/meander_fill.py | 5 | ||||
| -rw-r--r-- | lib/tiles.py | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/lib/elements/fill_stitch.py b/lib/elements/fill_stitch.py index 07da3211..8de169e0 100644 --- a/lib/elements/fill_stitch.py +++ b/lib/elements/fill_stitch.py @@ -168,7 +168,7 @@ class FillStitch(EmbroideryElement): @property @param('meander_scale_percent', _('Meander pattern scale'), type='float', unit="%", default=100, select_items=[('fill_method', 4)], sort_index=4) def meander_scale(self): - return np.maximum(self.get_split_float_param('meander_scale_percent', (100, 100)), (30, 30)) / 100 + return self.get_split_float_param('meander_scale_percent', (100, 100)) / 100 @property @param('meander_padding_mm', _('Meander padding'), type='float', unit="mm", default=0, select_items=[('fill_method', 4)], sort_index=5) diff --git a/lib/stitches/meander_fill.py b/lib/stitches/meander_fill.py index 6b3df0e3..5f399158 100644 --- a/lib/stitches/meander_fill.py +++ b/lib/stitches/meander_fill.py @@ -10,6 +10,7 @@ from ..utils import smooth_path from ..utils.geometry import Point as InkStitchPoint, ensure_geometry_collection from ..utils.list import poprandom from ..utils.prng import iter_uniform_floats +from ..utils.threading import check_stop_flag def meander_fill(fill, shape, shape_index, starting_point, ending_point): @@ -83,11 +84,15 @@ def generate_meander_path(graph, start, end, rng): meander_path = path_edges while edges_to_consider: while edges_to_consider: + check_stop_flag() + edge = poprandom(edges_to_consider, rng) edges_to_consider.extend(replace_edge(meander_path, edge, graph, graph_nodes)) edge_pairs = list(zip(meander_path[:-1], meander_path[1:])) while edge_pairs: + check_stop_flag() + edge1, edge2 = poprandom(edge_pairs, rng) edges_to_consider.extend(replace_edge_pair(meander_path, edge1, edge2, graph, graph_nodes)) break diff --git a/lib/tiles.py b/lib/tiles.py index 17002ffa..5d33d946 100644 --- a/lib/tiles.py +++ b/lib/tiles.py @@ -10,6 +10,7 @@ from shapely.prepared import prep from .debug import debug from .svg import apply_transforms from .utils import Point, cache, get_bundled_dir, guess_inkscape_config_path +from .utils.threading import check_stop_flag class Tile: @@ -145,6 +146,8 @@ class Tile: tiles1 = ceil(shape_diagonal / self.shift1.length()) + 2 for repeat0 in range(floor(-tiles0 / 2), ceil(tiles0 / 2)): for repeat1 in range(floor(-tiles1 / 2), ceil(tiles1 / 2)): + check_stop_flag() + shift0 = repeat0 * self.shift0 shift1 = repeat1 * self.shift1 this_tile = self._translate_tile(shift0 + shift1 + shape_center) |
