#[non_exhaustive]pub enum SolidRequirements {
Structural,
Enclosing,
Oriented,
}Expand description
How strictly an operand must be formed.
Levels are cumulative: each includes the checks below it.
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.
Structural
Indices in range, no NaN/infinite coordinates, at least one triangle.
The floor. An operand failing this is malformed data, not geometry.
Enclosing
Structural, plus a finite, non-zero enclosed signed volume.
Volume accumulation that overflows or otherwise becomes non-finite is rejected rather than treated as evidence of a valid interior.
A flat or self-cancelling shell has no interior, so no set operation on it has a defined meaning.
Oriented
Enclosing, plus outward orientation (positive signed volume).
An inside-out operand would silently invert the operation, turning a difference into an intersection without any error.
Implementations§
Trait Implementations§
Source§impl Clone for SolidRequirements
impl Clone for SolidRequirements
Source§fn clone(&self) -> SolidRequirements
fn clone(&self) -> SolidRequirements
Returns a copy of the value. Read more
1.0.0 · 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 SolidRequirements
impl Debug for SolidRequirements
Source§impl Hash for SolidRequirements
impl Hash for SolidRequirements
Source§impl Ord for SolidRequirements
impl Ord for SolidRequirements
Source§fn cmp(&self, other: &SolidRequirements) -> Ordering
fn cmp(&self, other: &SolidRequirements) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for SolidRequirements
impl PartialEq for SolidRequirements
Source§impl PartialOrd for SolidRequirements
impl PartialOrd for SolidRequirements
impl Copy for SolidRequirements
impl Eq for SolidRequirements
impl StructuralPartialEq for SolidRequirements
Auto Trait Implementations§
impl Freeze for SolidRequirements
impl RefUnwindSafe for SolidRequirements
impl Send for SolidRequirements
impl Sync for SolidRequirements
impl Unpin for SolidRequirements
impl UnwindSafe for SolidRequirements
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
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>
Converts
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>
Converts
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