pub enum GroupCut {
Cut(Mesh),
Retessellated(Mesh),
Rejected(GroupReject),
}Expand description
Outcome of ClippingProcessor::subtract_mesh_many and of
ClippingProcessor::subtract_mesh, which is a group of one.
Variants§
Cut(Mesh)
The kernel classified a cut, and every produced intermediate passed validation and the accept gates. Single-cutter arrangements are lenient; group cuts additionally require conformity or the kernel’s volume oracle. Empty when the cutters engulf the host.
Retessellated(Mesh)
The kernel classified the cutter as not reaching the host solid,
and this is the host re-tessellated along the
arrangement, consolidated, validated and gated like a Cut. Same solid
as the host, different triangles. Whether to keep it is the caller’s
choice; the void router has kept it when it changed the triangle count,
and the watertightness census depends on that (#4692). A non-conforming
same-count miss is Rejected(Nonconforming) instead (#5362).
The public group API does not return this variant. The private void
group opt-in can retain a conforming, count-changing miss (#6516).
Rejected(GroupReject)
The host is untouched; uncertain results need a per-member fallback.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GroupCut
impl RefUnwindSafe for GroupCut
impl Send for GroupCut
impl Sync for GroupCut
impl Unpin for GroupCut
impl UnwindSafe for GroupCut
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.