From f57d61b6e68ac9d0047361cc6fd140064b22545d Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Sun, 2 Apr 2023 00:14:57 -0400 Subject: meander fixes --- lib/stitches/meander_fill.py | 14 ++++++++++---- lib/stitches/running_stitch.py | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'lib/stitches') diff --git a/lib/stitches/meander_fill.py b/lib/stitches/meander_fill.py index 0a59da72..29ec6270 100644 --- a/lib/stitches/meander_fill.py +++ b/lib/stitches/meander_fill.py @@ -2,7 +2,7 @@ from itertools import combinations import networkx as nx from inkex import errormsg -from shapely.geometry import MultiPoint, Point +from shapely.geometry import LineString, MultiPoint, Point from shapely.ops import nearest_points from .. import tiles @@ -126,10 +126,16 @@ def generate_meander_path(graph, start, end, rng): check_stop_flag() edge1, edge2 = poprandom(edge_pairs, rng) - edges_to_consider.extend(replace_edge_pair(meander_path, edge1, edge2, graph, graph_nodes)) - break + new_edges = replace_edge_pair(meander_path, edge1, edge2, graph, graph_nodes) + if new_edges: + edges_to_consider.extend(new_edges) + break + + debug.log_graph(graph, "remaining graph", "#FF0000") + points = path_to_points(meander_path) + debug.log_line_string(LineString(points), "meander path", "#00FF00") - return path_to_points(meander_path) + return points def replace_edge(path, edge, graph, graph_nodes): diff --git a/lib/stitches/running_stitch.py b/lib/stitches/running_stitch.py index 1dbfcaaf..46f3a3e9 100644 --- a/lib/stitches/running_stitch.py +++ b/lib/stitches/running_stitch.py @@ -10,6 +10,8 @@ from copy import copy import numpy as np from shapely import geometry as shgeo + +from ..debug import debug from ..utils import prng from ..utils.geometry import Point from ..utils.threading import check_stop_flag @@ -246,6 +248,7 @@ def path_to_curves(points: typing.List[Point], min_len: float): return curves +@debug.time def running_stitch(points, stitch_length, tolerance): # Turn a continuous path into a running stitch. stitches = [points[0]] -- cgit v1.2.3