Enum libreda_db::prelude::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
sourceimpl<IntersectionCoord, OriginalCoord, Edge> Clone for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Clone,
OriginalCoord: Clone,
Edge: Clone,
impl<IntersectionCoord, OriginalCoord, Edge> Clone for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Clone,
OriginalCoord: Clone,
Edge: Clone,
sourcefn clone(&self) -> EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
fn clone(&self) -> EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<IntersectionCoord, OriginalCoord, Edge> Debug for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Debug,
OriginalCoord: Debug,
Edge: Debug,
impl<IntersectionCoord, OriginalCoord, Edge> Debug for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Debug,
OriginalCoord: Debug,
Edge: Debug,
sourceimpl<IntersectionCoord, OriginalCoord, Edge> PartialEq<EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>> for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: PartialEq<IntersectionCoord>,
OriginalCoord: PartialEq<OriginalCoord>,
Edge: PartialEq<Edge>,
impl<IntersectionCoord, OriginalCoord, Edge> PartialEq<EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>> for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: PartialEq<IntersectionCoord>,
OriginalCoord: PartialEq<OriginalCoord>,
Edge: PartialEq<Edge>,
sourcefn 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 ==
. Read more
sourcefn ne(
&self,
other: &EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
) -> bool
fn ne(
&self,
other: &EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
) -> bool
This method tests for !=
.
impl<IntersectionCoord, OriginalCoord, Edge> Copy for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Copy,
OriginalCoord: Copy,
Edge: Copy,
impl<IntersectionCoord, OriginalCoord, Edge> Eq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
IntersectionCoord: Eq,
OriginalCoord: Eq,
Edge: Eq,
impl<IntersectionCoord, OriginalCoord, Edge> StructuralEq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
impl<IntersectionCoord, OriginalCoord, Edge> StructuralPartialEq for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge>
Auto Trait Implementations
impl<IntersectionCoord, OriginalCoord, Edge> RefUnwindSafe for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
Edge: RefUnwindSafe,
IntersectionCoord: RefUnwindSafe,
OriginalCoord: RefUnwindSafe,
impl<IntersectionCoord, OriginalCoord, Edge> Send for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
Edge: Send,
IntersectionCoord: Send,
OriginalCoord: Send,
impl<IntersectionCoord, OriginalCoord, Edge> Sync for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
Edge: Sync,
IntersectionCoord: Sync,
OriginalCoord: Sync,
impl<IntersectionCoord, OriginalCoord, Edge> Unpin for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
Edge: Unpin,
IntersectionCoord: Unpin,
OriginalCoord: Unpin,
impl<IntersectionCoord, OriginalCoord, Edge> UnwindSafe for EdgeIntersection<IntersectionCoord, OriginalCoord, Edge> where
Edge: UnwindSafe,
IntersectionCoord: UnwindSafe,
OriginalCoord: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more