cad-editor/src/scene
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Griffin f347a20a4c perf(scene): return the memoized wire set by Arc, not by deep copy
entity_wires() cloned the entire wire set — every point, fill, and snap
buffer of every entity — on each call, although the set is already
memoized behind an Arc and none of the 18 call sites mutates it. On
large mesh imports (#358: 42M faces, ~210 MB of wire content per 1M
triangles) that is a multi-GB allocation + memcpy on every pick, snap,
selection, or plot pass.

Return the Arc instead. Call sites iterate as before; the two
window-plot paths that build a culled owned subset now clone only the
wires inside the plot window, and the print pipeline moves the Arc into
its async task.

Measured (tests/mem_probe_meshent.rs, 1M-triangle MESH, release):
resident after entity_wires() drops 758 -> 547 MB (866 -> 646 B/face).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 12:56:36 -07:00
..
cache fix(xref): blocks respect their internal draw order 2026-07-21 15:53:28 +03:00
convert fix(xref): blocks respect their internal draw order 2026-07-21 15:53:28 +03:00
model fix(hatch): finite GPU sentinel for boundary loop separators (#386, #416) 2026-07-22 21:45:37 +03:00
pick fix(pick): catch a wide polyline on its band, not just its centreline 2026-07-17 15:22:56 +03:00
pipeline fix(hatch): finite GPU sentinel for boundary loop separators (#386, #416) 2026-07-22 21:45:37 +03:00
text fix(xref): blocks respect their internal draw order 2026-07-21 15:53:28 +03:00
view fix(view): ZOOM Extents fills the window at the real aspect (#364) 2026-07-21 23:09:37 +03:00
annotative.rs feat(annotative): synthesize per-object contexts + editable UI 2026-07-13 22:38:29 +03:00
camera_ops.rs fix(view): ZOOM Extents fills the window at the real aspect (#364) 2026-07-21 23:09:37 +03:00
entity.rs feat(props): editable block Name row + collapsible XYZ groups 2026-07-22 11:11:10 +03:00
group_layer.rs feat(ui): bulk layer on/off, lock, freeze, transparency + Ctrl+A (#236) 2026-07-03 16:06:10 +03:00
layout.rs feat(layout): reopen a drawing in the space it was saved in 2026-07-12 01:01:40 +03:00
mod.rs perf(scene): return the memoized wire set by Arc, not by deep copy 2026-07-22 12:56:36 -07:00
modify.rs fix(edit): grip edits drop a dimension's stale baked *D block (#398) 2026-07-21 19:56:23 +03:00
mspace.rs feat(nav): turntable orbit, selection/cursor pivot, Shift+MMB rotate (#229) 2026-07-01 21:58:04 +03:00
page_setup.rs fix(io): resolve root named-objects dict robustly on foreign DWGs 2026-07-13 16:28:21 +03:00
paper.rs fix(viewport): frame model-documentation drawing views correctly 2026-07-20 21:11:30 +03:00
preview.rs fix(stretch): free crossing-window corners from Ortho, draw filled marquee (#291) 2026-07-10 13:32:32 +03:00
project.rs refactor(viewport): unify content-viewport clipping on the stencil path 2026-07-20 11:06:28 +03:00
scene_markers.rs feat(scene): draw nonprint light, camera and geo-location glyphs 2026-07-19 22:15:40 +03:00
selection.rs feat(props): editable block Name row + collapsible XYZ groups 2026-07-22 11:11:10 +03:00