forked from 1b-agent/opencadstudio-upstream
fix: correct paper-space grip projection and MTEXT attachment point rendering
- Grip points in paper space now use the 2-D linear to_px transform (tx/ty/ortho_size) instead of the 3-D view_proj matrix, matching the coordinate system used by PaperCanvas - world_offset is no longer subtracted from paper-space entity grip positions — paper-space coordinates are already unoffset (same rule as wire tessellation in wires_for_block) - MTEXT v_offset corrected for all attachment points: CXF glyphs sit on the baseline and extend upward, so Top attachment needs v_offset=-h, Bottom needs (n_lines-1)*line_h, Middle is the midpoint of the two Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
3009639741
commit
01943c5b8d
5 files changed
+93
-11
No files matched your search
@@ -244,7 +244,10 @@ impl H7CAD {
|
||||
/// Rebuild the cached selected_grips from the current entity selection.
|
||||
pub(super) fn refresh_selected_grips(&mut self) {
|
||||
let i = self.active_tab;
|
||||
let wo = self.tabs[i].scene.world_offset;
|
||||
let is_paper = self.tabs[i].scene.current_layout != "Model";
|
||||
// Paper-space entity coordinates are NOT offset by world_offset (same rule
|
||||
// as wire tessellation in wires_for_block). Only subtract in model space.
|
||||
let wo = if is_paper { [0.0f64; 3] } else { self.tabs[i].scene.world_offset };
|
||||
let (new_handle, new_grips) = {
|
||||
let selected = self.tabs[i].scene.selected_entities();
|
||||
if selected.len() == 1 {
|
||||
|
||||
Reference in new issue
Block a user