#[non_exhaustive]pub enum HalfedgeBuildError {
IncompleteTriangle {
index_count: usize,
},
FaceTooSmall {
face: usize,
corners: usize,
},
IndexOutOfRange {
face: usize,
index: u32,
position_count: usize,
},
DegenerateFace {
face: usize,
vertex: u32,
},
NonManifoldEdge {
a: u32,
b: u32,
faces: usize,
},
InconsistentOrientation {
from: u32,
to: u32,
},
NonManifoldVertex {
vertex: u32,
},
TooLarge,
}Expand description
Why a face list cannot become a HalfedgeMesh.
Each refusal names the configuration and the elements involved, so a caller can repair or report the input instead of guessing.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
IncompleteTriangle
The triangle index buffer is not divisible by three.
FaceTooSmall
A face has fewer than three corners.
IndexOutOfRange
A corner names a position that does not exist.
Fields
DegenerateFace
A face visits the same vertex twice.
NonManifoldEdge
More than two faces share an edge.
InconsistentOrientation
Two faces traverse a shared edge in the same direction: their windings disagree (or the same face appears twice).
NonManifoldVertex
The faces around a vertex form more than one fan: two cones touching at a point, or a boundary vertex where two holes meet.
TooLarge
The mesh needs more elements than 32-bit ids can address.
Trait Implementations§
Source§impl Clone for HalfedgeBuildError
impl Clone for HalfedgeBuildError
Source§fn clone(&self) -> HalfedgeBuildError
fn clone(&self) -> HalfedgeBuildError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 HalfedgeBuildError
impl Debug for HalfedgeBuildError
Source§impl Display for HalfedgeBuildError
impl Display for HalfedgeBuildError
impl Eq for HalfedgeBuildError
Source§impl Error for HalfedgeBuildError
impl Error for HalfedgeBuildError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for HalfedgeBuildError
impl PartialEq for HalfedgeBuildError
impl StructuralPartialEq for HalfedgeBuildError
Auto Trait Implementations§
impl Freeze for HalfedgeBuildError
impl RefUnwindSafe for HalfedgeBuildError
impl Send for HalfedgeBuildError
impl Sync for HalfedgeBuildError
impl Unpin for HalfedgeBuildError
impl UnsafeUnpin for HalfedgeBuildError
impl UnwindSafe for HalfedgeBuildError
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