Engine: mesh.seed.edge, mesh.seed.clear and mesh.seed.list

Seed design edges by their persistent names with a count or a size, a bias
and a constraint; one undo step each, saved with the model. Seeds on edges a
reopened design lacks are reported as stale.

Part of #230.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-14 20:58:17 -04:00
1 parent f8e0be970e
commit e8cada94d0
12 files changed
+295 -11

No files matched your search

+17
View File
@@ -809,6 +809,23 @@ pub const ELEMENT_ADD: &[Field] = &[
json("nodes", "Nodes").req().hint("[labels]"),
];
pub const SEED_EDGE: &[Field] = &[
json("edges", "Edges").req().hint("[{\"body\", \"edge\"}, …] — Use selection with Select: Edges"),
int("count", "Count", 1, 100_000).hint("or an element size"),
positive("size", "Element size", D::Length).hint("or a count"),
group(
"bias",
"Bias",
&[
range("ratio", "Ratio", D::None, 1.0, 1e4).req().def("1"),
choice("toward", "Small toward", &[("start", "Start"), ("end", "End"), ("both", "Both ends")]).req().def("\"end\""),
],
),
choice("constraint", "Constraint", &[("exact", "Exact"), ("min", "At least"), ("free", "Free (a goal)")]).def("\"exact\""),
];
pub const SEED_CLEAR: &[Field] = &[json("edges", "Edges").hint("every seed")];
pub const DELAUNAY_POINTS: &[Field] = &[json("points", "Points").req().hint("[[x, y, z], …]")];
pub const TAG: &[Field] = &[