Merge PR #322: perf — responsive large copy/paste + point picking

External contributor sLuCHa (sLuCHaa). Gates O(k²) snap intersection
passes, O(1) handle lookups in preview, bbox paste anchor/ghost,
count-only properties panel for huge selections, incremental paste mesh.
This commit is contained in:
Hakan Seven 2026-07-08 23:38:37 +03:00
commit 17f46968d8
7 changed files with 143 additions and 35 deletions

View file

@ -70,8 +70,9 @@ impl OpenCADStudio {
.iter()
.filter_map(|&h| self.tabs[i].scene.document.get_entity(h).cloned())
.collect();
self.clipboard_centroid = super::super::helpers::entities_centroid(
&self.tabs[i].scene.wire_models_for(&handles),
self.clipboard_centroid = super::super::helpers::entities_centroid_by_bbox(
&self.tabs[i].scene.document,
&handles,
);
self.clipboard = entities;
self.clipboard_deps = super::super::ClipboardDeps::capture(
@ -158,8 +159,9 @@ impl OpenCADStudio {
.iter()
.filter_map(|&h| self.tabs[i].scene.document.get_entity(h).cloned())
.collect();
self.clipboard_centroid = super::super::helpers::entities_centroid(
&self.tabs[i].scene.wire_models_for(&handles),
self.clipboard_centroid = super::super::helpers::entities_centroid_by_bbox(
&self.tabs[i].scene.document,
&handles,
);
let count = entities.len();
self.clipboard = entities;