cad-editor/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven 8df9bef6f8 perf(scene): grip drag previews the entity instead of re-tessellating
Phase 2.2 (partial). Dragging an entity's grip called scene.apply_grip on
every mouse move, which bumped geometry and re-tessellated the whole model
per move (plus an O(N) clone of every wire to exclude the edited one from
snapping). On a large drawing that's the 30ms->400ms spike, per frame, for
the duration of the drag.

apply_grip no longer bumps. The drag flow now:
- first move: hide the edited entity from the base tessellation (one
  re-tess) and record it in grip_preview_handle;
- each move: apply the grip to the doc (no bump) and show the entity as a
  one-entity overlay preview (set_preview_wires) — the base is a cache hit;
- commit on release / Esc: un-hide, drop the preview, one final re-tess.

Because the edited entity is hidden, it's already absent from
hit_test_wires, so snapping runs against the cached set directly — no
per-move clone and no self-snap. Two re-tessellations per drag instead of
one per move.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 10:33:08 +03:00
..
app perf(scene): grip drag previews the entity instead of re-tessellating 2026-06-05 10:33:08 +03:00
command fix(commands): finish the world-XY coordinate migration (#54) 2026-06-04 10:39:43 +03:00
entities perf(hash): swap std HashMap/HashSet for rustc-hash FxHash 2026-06-05 00:35:53 +03:00
io perf(io): parallelize corrupt-entity detection scan 2026-06-05 08:58:39 +03:00
modules perf(io,scene): drop redundant purge walk, fuse world-offset scan 2026-06-05 00:32:39 +03:00
scene perf(scene): grip drag previews the entity instead of re-tessellating 2026-06-05 10:33:08 +03:00
shaders feat(statusbar): transparency-display toggle (TPY pill) 2026-06-04 23:25:09 +03:00
snap perf(hash): swap std HashMap/HashSet for rustc-hash FxHash 2026-06-05 00:35:53 +03:00
ui perf(hash): swap std HashMap/HashSet for rustc-hash FxHash 2026-06-05 00:35:53 +03:00
lib.rs feat: in-app update notice — checks GitHub releases on startup 2026-05-16 19:55:57 +03:00
linetypes.rs perf(hash): swap std HashMap/HashSet for rustc-hash FxHash 2026-06-05 00:35:53 +03:00
main.rs fix(windows): default to DX12/Vulkan so AMD GL driver can't crash startup (#55) 2026-06-04 10:02:09 +03:00
patterns.rs chore: rename H7CAD to Open CAD Studio 2026-05-23 17:16:15 +03:00
update_check.rs feat(update-check): suppress popup for releases under 30 min old 2026-05-29 15:29:00 +03:00