fix(view): stabilize 3D navigation and hidden lines

Refresh stale depth bounds after geometry edits, allow orbiting through camera poles, and preserve hidden-line occlusion for selected solids.\n\nFixes #957
This commit is contained in:
Hakan Seven committed 2026-09-03 20:22:35 +03:00
1 parent a3d85f6483
commit 3088e641aa
6 files changed
+72 -16

No files matched your search

+1
View File
@@ -1376,6 +1376,7 @@ impl OpenCADStudio {
.scene
.mutate_active_viewport_camera(|c| c.snap_to_face(eye_dir, r_ucs));
} else {
self.tabs[i].scene.refresh_projection_bounds();
self.tabs[i]
.scene
.camera
+2
View File
@@ -1093,6 +1093,7 @@ impl OpenCADStudio {
}
let pivot = sel.orbit_pivot;
drop(sel);
self.tabs[i].scene.refresh_projection_bounds();
self.tabs[i].scene.camera.borrow_mut().orbit(dx, dy, pivot);
self.tabs[i].scene.camera_generation += 1;
self.tabs[i]
@@ -5011,6 +5012,7 @@ impl OpenCADStudio {
.snap_active_viewport_to_direction(eye_dir, r_ucs);
}
} else {
self.tabs[i].scene.refresh_projection_bounds();
let mut cam = self.tabs[i].scene.camera.borrow_mut();
if is_face {
cam.snap_to_face(eye_dir, r_ucs);