forked from 1b-agent/opencadstudio-upstream
Sheet sets: Place on Sheet, sheet view menus, block lists, missing status, field refresh
Model Views lists named model views and places them on the current sheet (xref, viewport, paper-space named view, view label with navigation fields, sheet view record); sheet view rows get Display, Rename & Renumber View, Set category, Place Callout Block and Place View Label Block; the View Category dialog's Add Blocks opens List of Blocks / Select Block; a sheet whose relative path is gone shows missing; sheet set fields store their values when a set changes; named views keep their centre relative to the target. Codec pin moves to the revision with these field helpers. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
5c9f19a4dc
commit
0d0fbafaa8
31 files changed
+1370
-88
No files matched your search
@@ -202,6 +202,9 @@ impl Scene {
|
||||
};
|
||||
// Build rotation: canonical eye is +Z, rotate to eye_dir.
|
||||
cam.rotation = glam::Quat::from_rotation_arc(Vec3::Z, eye_dir);
|
||||
// The view centre is an offset in view coordinates from the target.
|
||||
let offset = cam.rotation * Vec3::new(view.center.x as f32, view.center.y as f32, 0.0);
|
||||
cam.target += glam::DVec3::new(offset.x as f64, offset.y as f64, offset.z as f64);
|
||||
// Sync yaw/pitch from new rotation (for ViewCube).
|
||||
let pitch = eye_dir.z.clamp(-1.0, 1.0).asin();
|
||||
let yaw = eye_dir.x.atan2(eye_dir.y);
|
||||
@@ -226,11 +229,8 @@ impl Scene {
|
||||
let height = cam.ortho_size() * 2.0;
|
||||
let width = height; // caller can adjust; rough square
|
||||
let mut view = codec::tables::View::new(name);
|
||||
view.center = Vector3 {
|
||||
x: cam.target.x as f64,
|
||||
y: cam.target.y as f64,
|
||||
z: 0.0,
|
||||
};
|
||||
// The centre is in view (DCS) coordinates, relative to the target.
|
||||
view.center = Vector3 { x: 0.0, y: 0.0, z: 0.0 };
|
||||
view.target = Vector3 {
|
||||
x: cam.target.x as f64,
|
||||
y: cam.target.y as f64,
|
||||
|
||||
Reference in new issue
Block a user