pub struct MeshHealth {
pub positions: usize,
pub triangles: usize,
pub usable_triangles: usize,
pub invalid_indices: usize,
pub non_finite_positions: usize,
pub degenerate_triangles: usize,
pub boundary_edges: usize,
pub non_manifold_edges: usize,
pub inconsistent_winding_edges: usize,
pub first_invalid_index: Option<(usize, u64)>,
pub first_non_finite_position: Option<usize>,
}Expand description
Source-neutral structural facts about one triangle mesh.
Fields§
§positions: usizeNumber of addressable positions.
triangles: usizeNumber of triangle records inspected.
usable_triangles: usizeTriangles with valid, finite, non-degenerate vertices.
invalid_indices: usizeNumber of invalid triangle-corner indices.
non_finite_positions: usizeNumber of non-finite positions.
degenerate_triangles: usizeNumber of triangles below the explicit area threshold.
boundary_edges: usizeUndirected edges with exactly one usable incident triangle.
non_manifold_edges: usizeUndirected edges with more than two usable incident triangles.
inconsistent_winding_edges: usizeTwo-manifold edges whose incident faces use the same directed edge. Such a mesh is closed but has inconsistent local winding, so signed enclosed-volume reduction is not structurally trustworthy.
first_invalid_index: Option<(usize, u64)>First (triangle, source_index) which could not address a position.
first_non_finite_position: Option<usize>First non-finite position index.
Implementations§
Source§impl MeshHealth
impl MeshHealth
Sourcepub fn is_surface_usable(&self) -> bool
pub fn is_surface_usable(&self) -> bool
Whether at least one triangle can safely support surface algorithms.
Sourcepub fn is_closed_two_manifold(&self) -> bool
pub fn is_closed_two_manifold(&self) -> bool
Whether the usable mesh is closed and two-manifold.
Trait Implementations§
Source§impl Clone for MeshHealth
impl Clone for MeshHealth
Source§fn clone(&self) -> MeshHealth
fn clone(&self) -> MeshHealth
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MeshHealth
impl Debug for MeshHealth
Source§impl PartialEq for MeshHealth
impl PartialEq for MeshHealth
impl Eq for MeshHealth
impl StructuralPartialEq for MeshHealth
Auto Trait Implementations§
impl Freeze for MeshHealth
impl RefUnwindSafe for MeshHealth
impl Send for MeshHealth
impl Sync for MeshHealth
impl Unpin for MeshHealth
impl UnwindSafe for MeshHealth
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
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