Enum iron_shapes::edge::EdgeIntersection
source · pub enum EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> {
None,
Point(Point<IntersectionCoord>),
EndPoint(Point<OriginalCoord>),
Overlap(Edge),
}
Expand description
Return type for the edge-edge intersection functions. Stores all possible results of an edge to edge intersection.
§Note on coordinate types:
There are two coordinate types (which may be the same concrete type):
OriginalCoord
is the coordinate type used to define the edge end-points. An intersection at the end-points can be expressed with this coordinate type.IntersectionCoord
is the coordinate type used to express intersection points somewhere in the middle of the edge. This may differ from the coordinate type of the end-points. For example if the end-points are stored in integer coordinates the intersection may require rational coordinates. But in special cases such as axis-aligned edges, the intersection point can indeed be expressed in integer coordinates.
Variants§
None
No intersection.
Point(Point<IntersectionCoord>)
Intersection in a single point but not on an endpoint of an edge.
EndPoint(Point<OriginalCoord>)
Intersection in an endpoint of an edge.
Overlap(Edge)
Full or partial overlap.
Trait Implementations§
source§impl<IntersectionCoord: Clone, OriginalCoord: Clone, Edge: Clone> Clone for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord: Clone, OriginalCoord: Clone, Edge: Clone> Clone for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
source§fn clone(&self) -> EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
fn clone(&self) -> EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
Returns a copy 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<IntersectionCoord: Debug, OriginalCoord: Debug, Edge: Debug> Debug for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord: Debug, OriginalCoord: Debug, Edge: Debug> Debug for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
source§impl<IntersectionCoord: PartialEq, OriginalCoord: PartialEq, Edge: PartialEq> PartialEq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord: PartialEq, OriginalCoord: PartialEq, Edge: PartialEq> PartialEq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
source§fn eq(
&self,
other: &EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>,
) -> bool
fn eq( &self, other: &EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>, ) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<IntersectionCoord: Copy, OriginalCoord: Copy, Edge: Copy> Copy for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord: Eq, OriginalCoord: Eq, Edge: Eq> Eq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> StructuralPartialEq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
Auto Trait Implementations§
impl<IntersectionCoord, OriginalCoord, Edge> Freeze for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> RefUnwindSafe for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> Send for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> Sync for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> Unpin for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> UnwindSafe for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
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> 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