forked from 1b-agent/opencadstudio-upstream
feat: STRETCH with proper crossing-window vertex selection
Replaced the simplified MOVE-based STRETCH with a real crossing-window implementation. Workflow: pick two crossing-window corners, then base+target points. Only vertices/endpoints inside the window are translated: - Line: moves start/end independently - LwPolyline/Polyline: moves individual vertices inside window - Arc/Circle/Ellipse: moves whole entity if center is inside - Insert/Text/MText: moves if insertion point is inside Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
1 parent
1ef7bb5131
commit
d3d4ec4a08
4 files changed
+202
-56
No files matched your search
@@ -128,6 +128,16 @@ pub enum CmdResult {
|
||||
DdeditEntity { handle: Handle, new_text: String },
|
||||
/// Apply new pattern/scale/angle to an existing hatch entity.
|
||||
HatcheditApply { handle: Handle, name: String, scale: f32, angle: f32 },
|
||||
/// Stretch entities: move only vertices/endpoints inside the crossing window.
|
||||
StretchEntities {
|
||||
handles: Vec<Handle>,
|
||||
/// Min corner of the crossing window in world XZ (= DXF XY).
|
||||
win_min: Vec3,
|
||||
/// Max corner of the crossing window in world XZ (= DXF XY).
|
||||
win_max: Vec3,
|
||||
/// Translation vector to apply to vertices inside the window.
|
||||
delta: Vec3,
|
||||
},
|
||||
}
|
||||
|
||||
// ── Trait ─────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in new issue
Block a user