cad-editor/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Karim Jerbi 934570862c fix(hatch): pick innermost boundary and detect nested holes
The HATCH/GRADIENT/BOUNDARY "pick inside" mode returned the first outline containing the click point, so the result depended on draw order and any nested boundary was ignored. For a small rectangle inside a big one, clicking inside the small shape would hatch the whole big rectangle (or the small one, depending on which was drawn first), and clicking in the gap between them always hatched the full big rectangle with no hole.

Resolve the click against every enclosing outline and choose the smallest-area one as the fill. Any other outline fully contained by that ring but not containing the click point becomes a hole. The boundary is emitted as NaN-separated rings, which the GPU and CPU rasteriser already fill via even-odd, so pattern, solid, and gradient hatches all render the correct region (the small shape, or the big-minus-small ring) regardless of draw order. DXF export now writes one boundary path per ring so nested hatches persist with real holes.
2026-07-13 01:32:05 +01:00
..
app feat(properties): editable per-object leader dimension overrides 2026-07-13 00:28:42 +03:00
entities feat(properties): make MText columns editable 2026-07-13 01:14:15 +03:00
io fix(layout): create the CTAB variable so the exact paper tab round-trips 2026-07-12 01:17:26 +03:00
modules fix(hatch): pick innermost boundary and detect nested holes 2026-07-13 01:32:05 +01:00
plugin feat(plugin): surface loaded plugin commands in command-line autocomplete 2026-07-04 23:01:53 +03:00
scene fix(hatch): pick innermost boundary and detect nested holes 2026-07-13 01:32:05 +01:00
shaders refactor(pipeline): name the real hatch renderer hatch_gpu, legacy → wipeout_gpu 2026-07-09 10:45:40 +03:00
ui fix(ribbon): highlight toggle buttons by their actual state 2026-07-12 19:53:48 +03:00
cli.rs feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails 2026-07-11 01:27:17 +03:00
command.rs refactor(precision): widen command transform scalars and defaults to f64 (#311) 2026-07-12 00:34:38 +03:00
config.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
lib.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
main.rs feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails 2026-07-11 01:27:17 +03:00
par.rs feat(wasm): sequential rayon shim for the web build 2026-06-16 17:11:20 +03:00
patreon.rs feat(supporters): merge hand-maintained supporters, rank by amount 2026-07-08 00:32:12 +03:00
snap.rs fix(snap): Intersection requires a real 3D meeting, not a plan crossing (#335) 2026-07-10 13:05:48 +03:00
sys.rs fix(web): paste clipboard text into the TEXT / MText editors 2026-06-20 17:05:02 +03:00