|
28 | 28 | )
|
29 | 29 | from generalfuncs import (
|
30 | 30 | pairwise, by_threes, flatten,
|
31 |
| - vectorlength, are_points_equal, are_lines_equal, |
| 31 | + vectorlength, are_points_equal, are_lines_equal, is_sane_contour, |
32 | 32 | averagepoint_as_ffpoint, averagepoint_as_tuple, averagepoint_as_tuplevector,
|
33 | 33 | comp, iterfilter_stopatvectors, itermap_stopatvectors,
|
34 | 34 | AttrDict, closer, closerish, further, angle, similar_direction, shallow_angle,
|
@@ -572,6 +572,10 @@ def extract_dots(glyph, show_glyph=True):
|
572 | 572 | # Extract vectors with the real stroke width now
|
573 | 573 | approx_outlines = []
|
574 | 574 | for contour in layer:
|
| 575 | + if not is_sane_contour(contour): |
| 576 | + print("Skipping invalid contour:") |
| 577 | + print(", ".join(str((p.x, p.y)) for p in contour)) |
| 578 | + continue |
575 | 579 | points = extrapolate_midpoints(list(contour))
|
576 | 580 | approx_vectors = extract_vectors(points)
|
577 | 581 | linestring = vectorpairs_to_linestring(approx_vectors)
|
@@ -657,7 +661,10 @@ def make_triangles(polygon_data, holes = None):
|
657 | 661 | new_polyline = convert_polyline_to_polytri_version(polygon_data['line'])
|
658 | 662 | if are_points_equal(new_polyline[-1], new_polyline[0]):
|
659 | 663 | del new_polyline[-1]
|
| 664 | + #print("About to call p2t with polyline:") |
| 665 | + #print(", ".join(str((p.x, p.y)) for p in new_polyline)) |
660 | 666 | cdt = p2t.CDT(new_polyline)
|
| 667 | + #print("Just called p2t") |
661 | 668 | for hole_data in holes:
|
662 | 669 | hole = hole_data['line']
|
663 | 670 | if hasattr(hole, 'coords'):
|
|
0 commit comments