forked from 1b-agent/opencadstudio-upstream
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:
1 parent
a3d85f6483
commit
3088e641aa
6 files changed
+72
-16
No files matched your search
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user