Engine: the meshing commands pass the design's edge seeds to the meshers

mesh.tet.generate, mesh.hex.*, mesh.hex.blocks and mesh.cells give every
seed on the open design to their meshers, which match them to their own
curves by position, so a seed on an edge two cells share holds in both. The
tet reply gives, per seed, the mesh edges along it. Docs and the roadmap
say what is honoured where.

Fixes #230.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
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 21:23:05 -04:00
1 parent f78680e091
commit eb66b86e26
8 files changed
+142 -15

No files matched your search

+7 -1
View File
@@ -153,7 +153,13 @@ edges of partition cells matching counts.
2. `execute` `mesh.seed.edge {edges: [{body, edge}], count | size, bias?: {ratio, toward:
start|end|both}, constraint?: exact|min|free}`. `exact` keeps the count, `min` keeps at least
it, `free` is a goal. The reply gives the count each edge gets.
3. `mesh.seed.list` lists the seeds and the edges they reach (`stale` when the design has no such
3. Mesh: the hex meshers (`hex`, `hex_sweep`, `hex_mapped`, `hex_blocks`, `cells`) keep exact counts
through their interval assignment and refuse, naming the seeds, when two exact counts cannot
both hold (opposite sides of a mapped face, the layers between two levels); the tet mesher
divides the edge at the seed's nodes and grades its size field from them (its reply's
`seeds` gives the mesh edges along each). A seed on an edge two partition cells share holds
in both, so their meshes still conform.
4. `mesh.seed.list` lists the seeds and the edges they reach (`stale` when the design has no such
edge); `mesh.seed.clear {edges?}` removes them. Seeds are saved with the model.
## Limits