forked from 1b-agent/opencadstudio-upstream
refactor(selection): split 31-field SelectionState into five sub-structs
SelectionState now holds view, gesture, input, menu and orbit sub-structs; all 450 access sites updated mechanically with no behavior change. Deletes three write-only dead fields (box_last, box_last_crossing, poly_last_crossing). Hand-rolled clears in commands and dim_viewport route through the new clear methods; bench fixture updated. Full suite: 1976 passed / 0 failed / 25 ignored.
This commit is contained in:
1 parent
8c2cfa2c8f
commit
7aafd9c710
27 files changed
+512
-469
No files matched your search
@@ -430,7 +430,7 @@ impl Scene {
|
||||
/// wrong whenever a tiled viewport is active.
|
||||
pub(super) fn active_camera_aspect(&self) -> f32 {
|
||||
if self.current_layout == "Model" {
|
||||
let (canvas_w, canvas_h) = self.selection.borrow().vp_size;
|
||||
let (canvas_w, canvas_h) = self.selection.borrow().view.vp_size;
|
||||
let tiles = self.model_tiles.borrow();
|
||||
let active = self.active_model_tile.get().min(tiles.len().saturating_sub(1));
|
||||
if let Some(tile) = tiles.get(active) {
|
||||
@@ -803,7 +803,7 @@ impl Scene {
|
||||
z: view_dir.z as f64,
|
||||
};
|
||||
entry.view_height = view_height as f64;
|
||||
let (canvas_width, canvas_height) = self.selection.borrow().vp_size;
|
||||
let (canvas_width, canvas_height) = self.selection.borrow().view.vp_size;
|
||||
let viewport_width = (upper_right.x - lower_left.x).abs() * canvas_width as f64;
|
||||
let viewport_height = (upper_right.y - lower_left.y).abs() * canvas_height as f64;
|
||||
if viewport_width > 1e-9 && viewport_height > 1e-9 {
|
||||
@@ -1556,7 +1556,7 @@ impl Scene {
|
||||
return;
|
||||
};
|
||||
|
||||
let (canvas_w, canvas_h) = self.selection.borrow().vp_size;
|
||||
let (canvas_w, canvas_h) = self.selection.borrow().view.vp_size;
|
||||
let fallback = self.last_render_aspect.get().max(0.01);
|
||||
let aspects: Vec<f32> = self
|
||||
.model_tiles
|
||||
|
||||
Reference in new issue
Block a user