forked from 1b-agent/opencadstudio-upstream
fix(blocks): one base point convention for creation, redefine, insert, explode, XCLIP and REFEDIT
world = insert_point + Rot * Scale * (P - base_point). Attribute placement, EXPLODE, XCLIP storage, REFEDIT's working copy, the UCS reframe of attributes and the dynamic-block visibility grip ignored the base point and were offset by Rot*Scale*base. They now share insert_transform_with_base. Creation stores a ZERO base and redefine resets it; a no-op redefine moves nothing; the Block Definition dialog prefills the base from the definition. XCLIP filters stored by older builds keep their old displacement.
This commit is contained in:
1 parent
a456367b26
commit
5dfa41c032
17 files changed
+1447
-19
No files matched your search
@@ -3035,6 +3035,11 @@ pub trait CadCommand: Send {
|
||||
None
|
||||
}
|
||||
|
||||
/// Supply the referenced block's insertion base point so the attributes
|
||||
/// the command now owns are placed through the same base-point convention
|
||||
/// as the render path. Default: no-op (no base point).
|
||||
fn attreq_set_block_base(&mut self, _base: codec::types::Vector3) {}
|
||||
|
||||
/// After the host commits an ATTREQ insert: keep the command running
|
||||
/// (repeated placement) instead of ending it.
|
||||
fn attreq_continue(&self) -> bool {
|
||||
|
||||
Reference in new issue
Block a user