vectorcraft/crates/pathops/src
bflatastic 700b6786c4 Fix #206: Live Paint treats every path as an edge, open lines included
The Live Paint Bucket now fills areas enclosed by any paths. Crossing
lines enclose faces it can fill, a line across a shape splits that shape's
face in two, and an area enclosed by paths becomes a face even when nothing
fills it (it starts unfilled). Edges are the paths cut wherever another path
meets them, keeping their stroke, so Shift-click paints each piece. Closed
shapes give the same faces as before.

Root cause: Live Paint built its faces from the Pathfinder regions, which
divide the filled areas of closed shapes. An open path counted only as the
area it would fill if closed, which for a straight line is nothing, so lines
divided nothing and the bucket found no face to fill. A new planar map in
vectorcraft-pathops (live_paint) sweeps every path as an edge: an open path
goes in traced there and back, with crossing counts that never cancel; faces
are walked on the resulting graph (holes included), and their fills and the
edges' sources are found geometrically. The sweep runs in an exactly sheared
frame, because it mishandles a horizontal line traced there and back.
Make, Merge, the bucket and Live Paint Selection all use it;
interior_point moves to vectorcraft-pathops with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 02:08:39 +07:00
..
boolean.rs Fix #206: Live Paint treats every path as an edge, open lines included 2026-10-07 02:08:39 +07:00
edit.rs Robustness: VectorCraft never crashes — no panics in shipped code 2026-10-05 06:28:59 +07:00
fit.rs Robustness: VectorCraft never crashes — no panics in shipped code 2026-10-05 06:28:59 +07:00
lib.rs Fix #206: Live Paint treats every path as an edge, open lines included 2026-10-07 02:08:39 +07:00
offset.rs clippy: as_chunks for fixed-size pixel and pair chunks (Rust 1.99 lint was red on main) 2026-10-05 06:24:06 +07:00
pathfinder.rs Pathfinder: find all regions in a few contour passes, not one per mask 2026-10-05 12:10:36 -07:00
planar.rs Fix #206: Live Paint treats every path as an edge, open lines included 2026-10-07 02:08:39 +07:00