pub struct Mesh2d {
pub tris: Vec<SubTri>,
pub axis: DropAxis,
pub w0: Sign,
pub unrecovered: usize,
pub audit_needed: bool,
pub coords: BTreeMap<Vid, Option<[f64; 2]>>,
}Expand description
The evolving 2D triangulation of T during phases C–E.
Fields§
§tris: Vec<SubTri>§axis: DropAxis§w0: Sign§unrecovered: usizeConstraint sub-segments the enforcement fixed point could NOT force as edges (degenerate channels the pocket rebuild bails on). Non-zero ⇒ the triangulation does not fully CONFORM to the other operand: sub-triangles may straddle an intersection line and their centroid classification is then unreliable. The batched void path treats this as a hard reject (fall back to sequential cuts); the binary path keeps its historical graceful-degrade behavior.
audit_needed: boolSet by [recover_subsegment] whenever a recovery attempt could not
force its edge (any bail path). Gates the final conformity audit in
triangulate so the clean common path pays nothing for it.
coords: BTreeMap<Vid, Option<[f64; 2]>>Per-Vid cached 2D f64 coordinate (dropped to axis, None when the
implicit point has no finite f64 image). Used ONLY as a conservative
broadphase prefilter in [insert_point] / channel detection — the exact
predicate still decides every retained triangle, so this never affects
topology. Cached because the same vertices are re-scanned on every point
insertion AND on every constraint sub-segment’s O(tris) channel scan.
Auto Trait Implementations§
impl Freeze for Mesh2d
impl RefUnwindSafe for Mesh2d
impl Send for Mesh2d
impl Sync for Mesh2d
impl Unpin for Mesh2d
impl UnsafeUnpin for Mesh2d
impl UnwindSafe for Mesh2d
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
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.