pub enum PolygonSemantics {
Union,
XOR,
}Expand description
Define the ‘inside’ of a polygon. Significant for self-overlapping polygons.
Union: A pointpis inside the polygon if the winding number is larger than0. This means that if a polygon overlaps with itself or multiple polygons overlap, the overlapping area is always ‘inside’.XOR: A pointpis inside the polygon if the winding number modulo 2 is larger than0. This means that if an odd number of polygons overlap, the overlapping area is ‘inside’ the polygon. In case of an even number of overlaps, the overlapping area is ‘outside’.
This plays an important role for self-overlapping polygons and self-overlapping multi-polygons.
Variants§
Union
A point p is inside the polygon if the winding number is larger than 0.
XOR
A point p is inside the polygon if the winding number modulo 2 is larger than 0.
Trait Implementations§
Source§impl Clone for PolygonSemantics
impl Clone for PolygonSemantics
Source§fn clone(&self) -> PolygonSemantics
fn clone(&self) -> PolygonSemantics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PolygonSemantics
impl Debug for PolygonSemantics
Source§impl PartialEq for PolygonSemantics
impl PartialEq for PolygonSemantics
impl Copy for PolygonSemantics
impl Eq for PolygonSemantics
impl StructuralPartialEq for PolygonSemantics
Auto Trait Implementations§
impl Freeze for PolygonSemantics
impl RefUnwindSafe for PolygonSemantics
impl Send for PolygonSemantics
impl Sync for PolygonSemantics
impl Unpin for PolygonSemantics
impl UnwindSafe for PolygonSemantics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more