pub struct Arrangement {
pub interner: Interner,
pub tris_a: Vec<[Vid; 3]>,
pub tris_b: Vec<[Vid; 3]>,
pub unrecovered: usize,
pub coplanar_a: Vec<bool>,
pub coplanar_b: Vec<bool>,
/* private fields */
}Expand description
The conforming arrangement of two operand meshes over a shared interner.
Fields§
§interner: Interner§tris_a: Vec<[Vid; 3]>Operand A’s conforming sub-triangles (interned Vids).
tris_b: Vec<[Vid; 3]>Operand B’s conforming sub-triangles.
unrecovered: usizeTotal constraint sub-segments the per-triangle re-triangulations could
not force as edges (Mesh2d::unrecovered). Non-zero ⇒ the operands do
not fully conform along their intersection; centroid classification of
straddling sub-triangles is unreliable. The N-ary batched difference
treats this as a hard reject; the binary boolean keeps its historical
graceful-degrade behavior.
coplanar_a: Vec<bool>Per-sub-triangle (parallel to tris_a) flag: this sub-triangle’s PARENT
face had a COPLANAR overlap with the other operand — so a sub-triangle on
it may lie on a shared interface plane and needs the [solid_side] regime-2
classification (boolean_vids). false ⇒ the parent face is transversal to
the other operand, so the plain centroid ray-cast suffices (the common case;
keeps box−box etc. on the fast single-cast path).
coplanar_b: Vec<bool>Per-sub-triangle (parallel to tris_b) coplanar-parent flag.
Auto Trait Implementations§
impl !Freeze for Arrangement
impl !RefUnwindSafe for Arrangement
impl Send for Arrangement
impl !Sync for Arrangement
impl Unpin for Arrangement
impl UnwindSafe for Arrangement
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
§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.