#[non_exhaustive]pub enum ArcPolygonDefect {
Ring {
ring: ArcRingRef,
error: OverlayError,
},
SelfContact {
ring: ArcRingRef,
edges: [usize; 2],
at: Point2,
},
BoundaryOverlap {
rings: [ArcRingRef; 2],
},
DisconnectedInterior {
rings: Vec<ArcRingRef>,
},
NestingUndecided {
error: OverlayError,
},
HoleOutsideOuter {
hole: usize,
},
HolesOverlap {
holes: [usize; 2],
},
Clearance {
edges: [(ArcRingRef, usize); 2],
lower_bound: Scalar,
undecided: bool,
},
InvalidClearance {
clearance: Scalar,
},
}Expand description
Why an ArcPolygon does not bound a valid region.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Ring
A validate_arc_ring refusal of one ring.
SelfContact
Two edges of one ring share a point other than the vertex their ring
order puts between them: a crossing, pinch, tangency or fold-back.
edges ascending; at is the first such point, rounded once.
BoundaryOverlap
Two rings share a stretch of boundary. rings ascending.
Fields
rings: [ArcRingRef; 2]DisconnectedInterior
Contacts between rings cut the interior into separate pieces: the
rings and the contact points form a cycle. rings ascending, every
ring of the cut component.
Fields
rings: Vec<ArcRingRef>NestingUndecided
The exact arrangement that decides nesting refused the rings, so nesting is undecided and the polygon is not called valid.
Fields
error: OverlayErrorHoleOutsideOuter
Part of a hole lies outside the outer ring.
HolesOverlap
Two holes’ interiors meet (crossing or nested). holes ascending.
Clearance
Two edges are closer than the requested clearance
(ArcCheckOptions::with_clearance): their distance has a local
minimum strictly between zero and it away from their meeting points,
or they form an exact cusp (they meet and leave in the same
direction). The neighbourhood of a meeting point at a nonzero angle (a
narrow wedge) is not reported. edges are (ring, edge)
pairs, ascending. lower_bound is a certified lower bound on their
distance. undecided is false when the exact test proved the
distance is below the clearance, and true when it could not decide
and the pair is reported rather than cleared.
InvalidClearance
The requested clearance is not a finite, non-negative distance, so no clearance was checked.
Trait Implementations§
Source§impl Clone for ArcPolygonDefect
impl Clone for ArcPolygonDefect
Source§fn clone(&self) -> ArcPolygonDefect
fn clone(&self) -> ArcPolygonDefect
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more