#[non_exhaustive]pub enum PinchPolicy {
Refuse,
Accept,
}Expand description
How a triangulation treats rings that touch at a single point (#262): a hole touching the outer ring or another hole at a vertex, an outer ring pinched at a vertex, or a vertex lying on another ring’s edge.
The region such rings bound is valid, but the surface an extrusion builds over it is not a two-manifold: the walls of the two rings meet along one edge, which four faces then share. So solids refuse it and regions and surface patches accept it. The same holds for a ring that joins a hole by a seam it runs along both ways (#270): its region is the outer polygon less the hole, but an extrusion puts two coincident wall faces on the seam.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Refuse
Refuse touching rings and seams with InvalidInput naming them. For
anything that must close into a two-manifold: extrusion and loft
caps.
Accept
Triangulate the region the touching rings bound. For 2D regions and
planar surface patches: a plan footprint that is a union of shadows
touching at a corner, a space-boundary surface, a planar face of a
B-rep (whose edges are the ring edges either way, once a vertex
inside an edge, which ring_touches lists, is inserted into the
neighbouring face’s copy of that edge too). A ring joining a hole by
a seam run both ways (a keyhole, #270) is accepted too.