Document Properties-panel constraints/parameters, pill toggle, icon

redesign, and the ellipse solver fix in CHANGELOG

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
Felix RiestraandClaude Sonnet 5 committed 2026-09-10 23:16:37 +02:00
1 parent bd9a2d08f7
commit eca4e9d7a5
1 file changed
+43
+43
View File
@@ -6,6 +6,49 @@ pushed.
## Unreleased (since `3d0a41b6`)
- **Feature:** Properties panel gains a "Parameters" section (shown with no
selection) for inline named-parameter name/formula editing, add, and
delete, and a "Constraints" section (shown for a single selected entity)
listing every constraint touching it as a clickable link that selects
the linked entities in the viewport — danger-tinted when the constraint
conflicts. A newly-added parameter's formula now defaults to `1`, not
`0`, since a 0-length seed value is a genuine solver singularity for a
Distance constraint driven by that parameter (no defined direction to
grow back out of).
([command_driver.rs](src/app/command_driver.rs),
[properties.rs](src/app/properties.rs),
[ui/properties.rs](src/ui/properties.rs))
- **Feature:** new Options > General toggle, "Show values and parameter
names on constraint markers" (on by default, persisted). Off, every
constraint pill in the viewport shows just its bare glyph instead of
glyph-plus-driven-value/parameter-name — the glyph alone is enough to
see a constraint is present, without the value text covering nearby
geometry on a dense sketch.
([options.rs](src/ui/window/options.rs),
[view/mod.rs](src/app/view/mod.rs))
- **Feature:** all 18 constraint-ribbon icons (including the plain "F",
"L", "M", "S" letter glyphs) replaced with proper SVGs under
`assets/icons/constrain/`, matching the Modify section's two-color style
(`#B4B6B9` white / `#6DB7ED` blue, consistent stroke width). Tangent
reuses the Draw section's white-arc-plus-blue-dots motif.
([assets/icons/constrain](assets/icons/constrain),
[tools.rs](src/modules/draw/constrain/tools.rs))
- **Fix:** a Concentric or CenterPoint constraint that moved an ellipse's
center visibly rotated and reshaped the ellipse, even though nothing
constrained its shape. Root cause: `ocs_gcs::geo::Ellipse` stores
`focus1` as an absolute point rather than an offset from `center`, so
when a constraint pulled only on `center`, `focus1`'s absolute
coordinates stayed put while `center` moved — changing the derived
`focus1 - center` vector that `major_axis`/`minor_axis_ratio` are
computed from on write-back. The solver now adds two constraints per
registered ellipse pinning that offset to its pre-solve value, so
`focus1` translates rigidly with `center` unless something actually
constrains it.
([sketch_solve.rs](src/scene/sketch_solve.rs))
- **Fix:** a sketch's constraint set (or the named-parameter table) silently
lost *all* of its entries on the next DWG open once its serialized size
passed 255 bytes — roughly 5-6 constraints, easily reached by a real