Since #262/#260 (mesh-compile 0.3.14), the certified clipper accepts a vertex lying inside another ring's edge and inserts it into that edge, but only in the face being triangulated. In a B-rep or faceted solid, the neighbouring face that shares the edge keeps the edge unsplit, so the mesh gets a T-junction. Those edges are then boundary edges, yet CompileOutcome still reports the body as Solid. A consumer's closure audit (axioval's audit_mesh) catches it and treats the body as an open surface. The kernel itself should never claim Solid for a mesh with boundary edges: that is a silently degraded result.
Done when
- Either the inserted vertex is also inserted into the neighbouring face's copy of the shared edge (the shell is welded through it), or the outcome is not reported as
Solid when the closure check finds boundary edges.
- A test covers a faceted box whose face has a hole touching its outer edge at an interior point of that edge, as a B-rep and as authored polygons. It checks either that the result is closed and two-manifold, with volume exact, or that the outcome is demoted and the reason named.
- A mutation probe shows the closure check and the outcome demotion are both load-bearing.
Reported by axioval after adopting mesh-compile 0.3.14.
Since #262/#260 (mesh-compile 0.3.14), the certified clipper accepts a vertex lying inside another ring's edge and inserts it into that edge, but only in the face being triangulated. In a B-rep or faceted solid, the neighbouring face that shares the edge keeps the edge unsplit, so the mesh gets a T-junction. Those edges are then boundary edges, yet
CompileOutcomestill reports the body asSolid. A consumer's closure audit (axioval'saudit_mesh) catches it and treats the body as an open surface. The kernel itself should never claimSolidfor a mesh with boundary edges: that is a silently degraded result.Done when
Solidwhen the closure check finds boundary edges.Reported by axioval after adopting mesh-compile 0.3.14.