#[non_exhaustive]pub enum MeshClosure {
Solid,
Surface,
Unknown,
OpenSolid,
}Expand description
Whether a compiled mesh bounds a solid (#161).
A triangle mesh looks the same either way: a closed surface model (say,
an IFC IfcShellBasedSurfaceModel shaped like a box) is watertight, so
its divergence sum is a finite, plausible number. It is still not a
volume, because the source never claimed one. This is what tells the
two apart.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Solid
Every part of the mesh is the boundary of a solid; its enclosed volume is meaningful.
Surface
At least one part is a surface with no solid behind it: an open shell, a face or a trimmed surface patch (#311), or a closed shell the source never declared a solid. Area is meaningful; volume is not.
Unknown
The compiler did not report it.
OpenSolid
The source declared a solid, but the compiled mesh is not closed: some edge is not shared by exactly two triangles running it in opposite directions (#265). Neither its volume nor its closure can be trusted; the compiler reports this rather than claiming a solid for a mesh with boundary edges.
Trait Implementations§
Source§impl Clone for MeshClosure
impl Clone for MeshClosure
Source§fn clone(&self) -> MeshClosure
fn clone(&self) -> MeshClosure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for MeshClosure
Source§impl Debug for MeshClosure
impl Debug for MeshClosure
impl Eq for MeshClosure
Source§impl Hash for MeshClosure
impl Hash for MeshClosure
Source§impl PartialEq for MeshClosure
impl PartialEq for MeshClosure
impl StructuralPartialEq for MeshClosure
Auto Trait Implementations§
impl Freeze for MeshClosure
impl RefUnwindSafe for MeshClosure
impl Send for MeshClosure
impl Sync for MeshClosure
impl Unpin for MeshClosure
impl UnsafeUnpin for MeshClosure
impl UnwindSafe for MeshClosure
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