#[non_exhaustive]pub struct MeshCycleHealth {
pub health: MeshHealth,
pub unbalanced_edges: usize,
pub first_unbalanced_edge: Option<(u64, u64)>,
}Expand description
MeshHealth plus the oriented-cycle facts of the same pass.
A usable mesh is a closed oriented cycle when every undirected edge is
used equally often in each direction: the triangles then form a 2-cycle,
so the divergence sum of a signed volume does not depend on its base
point. This is weaker than MeshHealth::is_closed_two_manifold: it also
admits edges shared by four triangles (two per direction) and shells that
touch along an edge, and it refuses a T-junction, whose long edge is
matched by two short edges the audit cannot pair.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.health: MeshHealthThe structural facts audit_mesh reports for the same mesh.
unbalanced_edges: usizeUndirected edges among usable triangles whose net direction is not zero.
first_unbalanced_edge: Option<(u64, u64)>Smallest unbalanced edge as ascending (low, high) source indices.
Implementations§
Source§impl MeshCycleHealth
impl MeshCycleHealth
Sourcepub fn is_closed_oriented_cycle(&self) -> bool
pub fn is_closed_oriented_cycle(&self) -> bool
Whether the usable mesh is a closed oriented cycle: surface-usable, no degenerate triangle and no unbalanced edge.
Every closed two-manifold mesh is one. Enclosed volume additionally needs the winding number to be 0 or 1 everywhere, which no edge audit can see.
Trait Implementations§
Source§impl Clone for MeshCycleHealth
impl Clone for MeshCycleHealth
Source§fn clone(&self) -> MeshCycleHealth
fn clone(&self) -> MeshCycleHealth
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more