pub struct ImprintResultRecord {
pub vertices: Vec<ImprintVertex>,
pub pieces: Vec<ImprintPieceRecord>,
pub by_face: Vec<FaceImprints>,
pub edge_splits: Vec<EdgeSplitRecord>,
pub barrier_edges: Vec<(u8, u64)>,
pub tangent_nodes: Vec<Vec3>,
pub section_evidence: bool,
pub cosurface_pairs: Vec<(FaceKey, FaceKey)>,
}Fields§
§vertices: Vec<ImprintVertex>§pieces: Vec<ImprintPieceRecord>§by_face: Vec<FaceImprints>§edge_splits: Vec<EdgeSplitRecord>§barrier_edges: Vec<(u8, u64)>Operand edges geometrically OVERLAPPED by a section curve (the cosurface/coincident locus: an inscribed sphere’s contact circle riding a cap ring). Fragment-selection fate must never flood across them — the two sides of such an edge can lie on opposite sides of the other operand (the cap disc inside, the wall outside).
tangent_nodes: Vec<Vec3>Every ISOLATED TANGENT NODE the imprint admitted: a point where the two
carriers touch with parallel normals and the section crosses itself, so
the pair was marched rather than refused (see
imprint/tangent_contact.rs). The boolean attributes a later tearing to
these rather than reporting an anonymous degeneracy — the second-order
filter cannot decide a third-order singularity, so the assembly is the
authority on whether a node it admitted was really imprintable.
section_evidence: boolTrue when the imprint saw ANY surface-contact evidence — an accepted pierce seed, a traced SSI branch (even one later clipped away), or a minted piece. Pure material disjointness leaves none, while a silently-lost section always leaves at least the upstream evidence, so the boolean’s legitimate-empty adjudication requires this to be false.
cosurface_pairs: Vec<(FaceKey, FaceKey)>Every face pair the imprint read as ONE surface and exchanged boundary
curves across instead of intersecting (cosurface_pair, or the sampled
pair classification’s Cosurface). Selection holds a fragment whose
point lies in such a partner’s trim On against it, so the coincidence
the sections were built on is the one the fragments are kept by.