mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-25 10:17:02 -06:00
Since #1035 moved linesweeper to 0.5, the sweep can cut the paths through one crossing at points more than its tolerance (eps) apart. The planar map merged a point only into a vertex within eps of it, so the two passes of an open path could end on two different vertices, and it kept them as two edges with different ends. Past the crossing, shape_builder then returned a line's loose end as one piece that runs out to the line's end and back, and an extra piece of the line it crosses, about 1.4e-6 long. In live_paint, the face around the loose end ran out along it and back, and FaceMerger::merge of the faces returned a second subpath along it. pieces_cut_out_of_their_inputs fails on main for such an input. The map now joins the ends of pieces whose middles and ends lie within 16 eps of each other. The two passes then share their ends and become one edge. The new test is the failing input proptest saved for the property. Lines that slope close to -1/32 in the document are nearly level in the sweep's frame, and the change does not cover all of them.