forked from 1b-agent/opencadstudio-upstream
feat(dynamic-input): ARC specs + ellipse-arc preview fixes
- ARC: per-step DynSpec for the typed-value modes — included-angle (SCA, CSA), chord length (SCL, CSL) and radius (SER) show their box and route the typed value through on_text_input via a new dyn_commit_as_text() hook; the angle box previews the live span. Point/3P/SCE steps stay on the legacy polar path. - ARC + ellipse-arc: derive the previewed sweep direction from the swept angle with a ~10° tolerance and advance the reference only on a clear move, so small cursor jitter no longer flips the arc. Ellipse uses the parametric angle so a flat ellipse isn't sticky. - Ellipse arc: the start-angle step now shows a line from the centre to the cursor (it only picks the start angle) instead of a misleading arc. - Ellipse arc: use the same minor-axis direction (Z x major) as the rendered entity so the committed arc matches the preview instead of mirroring across the major axis. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
e31dbcb5c4
commit
5128d94b2b
5 files changed
+177
-31
No files matched your search
@@ -567,6 +567,15 @@ pub trait CadCommand: Send {
|
||||
DynField::Point
|
||||
}
|
||||
|
||||
/// When true, a value typed into the dynamic-input box for this step is
|
||||
/// committed via `on_text_input` (as a string the command parses) rather
|
||||
/// than resolved into a point. Used by steps whose typed value is a span /
|
||||
/// included angle / length the command interprets itself (e.g. ARC angle
|
||||
/// modes), while the box still previews a live value from the cursor.
|
||||
fn dyn_commit_as_text(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
/// Explicit per-step dynamic-input description. `Some(spec)` takes full
|
||||
/// control of the boxes, guide geometry and anchor for this step; `None`
|
||||
/// (the default) falls back to the legacy `dyn_field()` behaviour so
|
||||
|
||||
Reference in new issue
Block a user