forked from 1b-agent/opencadstudio-upstream
feat(blocks): wire Stretch actions and independent reference evaluation
Author a native Stretch action from a Linear, Polar or XY parameter, a two-corner stretch frame, an object selection and a marker. Preview and retain its frame in BEDIT, with selectable and movable action markers. Freeze line and planar lightweight-polyline vertex bindings, preserve curved-segment height, move wholly selected objects, and evaluate independent saved INSERTs from their definition. Retain native DWG/DXF data, copied-reference isolation and undo/redo. Validate with synthetic frame, topology, parameter, history, Test Block, drawing-reference, COPY and roundtrip regressions: 340 block tests pass (6 existing opt-in ignored), plus 41 dock and 27 viewport tests. Other entity types, Polar Stretch, custom multipliers and chaining remain unsupported.
This commit is contained in:
1 parent
94940ad77c
commit
042f26a4cc
14 files changed
+827
-27
No files matched your search
@@ -277,7 +277,13 @@ pub fn stretch_entity(
|
||||
|
||||
/// The bulge of the segment from vertex `k` once its ends moved from
|
||||
/// `before` to `after`: the arc keeps its height, bulge · chord / 2.
|
||||
fn held_bulge(bulge: f64, before: &[[f64; 2]], after: &[[f64; 2]], k: usize, closed: bool) -> f64 {
|
||||
pub(crate) fn held_bulge(
|
||||
bulge: f64,
|
||||
before: &[[f64; 2]],
|
||||
after: &[[f64; 2]],
|
||||
k: usize,
|
||||
closed: bool,
|
||||
) -> f64 {
|
||||
let next = if k + 1 < before.len() {
|
||||
k + 1
|
||||
} else if closed {
|
||||
|
||||
Reference in new issue
Block a user