geometry.face.absorb: tiny and sliver faces into a neighbour (#506)

A face merge may keep one of its faces' names (Merge::into, model
FaceMerge::into): absorbing a tiny face leaves the neighbour by its own
name, so sets on it still select it. Shape::absorbing_neighbour finds
the face a tiny one shares the longest edges with. geometry.face.absorb
absorbs one face (into a named or the best neighbour) or, from_check,
every small and sliver face the last geometry.check marked; check marks
now carry the small face they found.

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-16 11:13:23 -04:00
1 parent ce02d263c7
commit 58174ba168
14 files changed
+283 -27

No files matched your search

+3
View File
@@ -226,6 +226,9 @@ pub struct GeometryMark {
/// A short edge's polyline (empty for the other kinds).
pub path: Vec<[f64; 3]>,
pub at: [f64; 3],
/// A small or sliver face, by body and persistent name: what `geometry.face.absorb`
/// `from_check` absorbs.
pub small: Option<(String, String)>,
}
/// The findings of the last `geometry.check`, while the design it checked is still open.