forked from 1b-agent/opencadstudio-upstream
fix(view): ZOOM Extents fills the window at the real aspect (#364)
fit_to_bounds fitted the bounding box's circumscribed DIAGONAL into the viewport height regardless of shape, so a wide drawing filled only a small central patch. Fit against the actual viewport aspect instead — required half-height = max(|y|, |x|/aspect) over the view-space corners — and trim the border margin from 20% to 10%. ZOOM EXTENTS/ALL and ZOOM WINDOW both pass the live pane aspect. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ac14e0041d
commit
ea860cab72
2 files changed
+21
-13
No files matched your search
@@ -107,7 +107,9 @@ impl Scene {
|
||||
if min == max {
|
||||
return;
|
||||
}
|
||||
self.camera.borrow_mut().fit_to_bounds(min, max);
|
||||
self.camera
|
||||
.borrow_mut()
|
||||
.fit_to_bounds(min, max, self.last_render_aspect.get().max(0.01));
|
||||
self.camera_generation += 1;
|
||||
}
|
||||
|
||||
@@ -850,7 +852,9 @@ impl Scene {
|
||||
if min == max {
|
||||
max += glam::Vec3::splat(1.0);
|
||||
}
|
||||
self.camera.borrow_mut().fit_to_bounds(min, max);
|
||||
self.camera
|
||||
.borrow_mut()
|
||||
.fit_to_bounds(min, max, self.last_render_aspect.get().max(0.01));
|
||||
self.camera_generation += 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user