#[non_exhaustive]pub enum HalfedgeEditError {
RemovedElement {
element: &'static str,
index: u32,
},
BoundaryEdge {
edge: EdgeId,
},
NotATriangle {
face: FaceId,
degree: usize,
},
EdgeExists {
a: VertexId,
b: VertexId,
},
LinkCondition {
edge: EdgeId,
},
WouldDegenerate {
edge: EdgeId,
},
NotBoundary {
halfedge: HalfedgeId,
},
NotSameFace {
a: HalfedgeId,
b: HalfedgeId,
},
AdjacentCorners {
a: HalfedgeId,
b: HalfedgeId,
},
TooLarge,
}Expand description
Why a local edit or a conversion was refused.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
RemovedElement
The id names an element that was removed or never existed.
BoundaryEdge
The edit needs a face on both sides of the edge.
NotATriangle
The edit needs a triangle here.
EdgeExists
The edit would add an edge between vertices already joined, making the mesh non-simple.
LinkCondition
Collapsing the edge would pinch the surface: its endpoints share a neighbour that is not opposite the edge, or both lie on a boundary the edge does not run along (Dey et al.’s link condition).
WouldDegenerate
The edit would leave a degenerate surface: collapsing an edge of a tetrahedron, of a lone triangle or of a two-triangle pillow, or flipping an edge whose two opposite corners coincide.
NotBoundary
The halfedge has a face; filling needs a boundary halfedge.
Fields
halfedge: HalfedgeIdThe halfedge.
NotSameFace
The two halfedges do not lie on the same face.
AdjacentCorners
The two corners are the same or already joined by a side of the face.
TooLarge
The edit needs more elements than 32-bit ids can address.
Trait Implementations§
Source§impl Clone for HalfedgeEditError
impl Clone for HalfedgeEditError
Source§fn clone(&self) -> HalfedgeEditError
fn clone(&self) -> HalfedgeEditError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HalfedgeEditError
impl Debug for HalfedgeEditError
Source§impl Display for HalfedgeEditError
impl Display for HalfedgeEditError
impl Eq for HalfedgeEditError
Source§impl Error for HalfedgeEditError
impl Error for HalfedgeEditError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for HalfedgeEditError
impl PartialEq for HalfedgeEditError
impl StructuralPartialEq for HalfedgeEditError
Auto Trait Implementations§
impl Freeze for HalfedgeEditError
impl RefUnwindSafe for HalfedgeEditError
impl Send for HalfedgeEditError
impl Sync for HalfedgeEditError
impl Unpin for HalfedgeEditError
impl UnsafeUnpin for HalfedgeEditError
impl UnwindSafe for HalfedgeEditError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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> ⓘ
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