pub struct IntersectionGraph {
pub pieces: Vec<Piece>,
pub verts: Vec<R3>,
pub verts_f64: Vec<Vec3>,
pub isect_edges: FxHashSet<EdgeKey>,
pub any_intersections: bool,
}Expand description
Everything classification and assembly need.
Fields§
§pieces: Vec<Piece>§verts: Vec<R3>Interned unique vertices; Piece::vi and EdgeKey index into this.
verts_f64: Vec<Vec3>Correctly rounded f64 approximation per interned vertex (exact for input vertices) — float filters and output assembly read these instead of re-rounding rationals.
isect_edges: FxHashSet<EdgeKey>Canonical keys of every arrangement constraint edge — the exact intersection sub-segments the classification rings live on.
any_intersections: boolTrue when any P×Q pair intersected at all.
Implementations§
Source§impl IntersectionGraph
impl IntersectionGraph
Sourcepub fn piece_verts(&self, pi: usize) -> [&R3; 3]
pub fn piece_verts(&self, pi: usize) -> [&R3; 3]
The three exact vertices of a piece.
Auto Trait Implementations§
impl Freeze for IntersectionGraph
impl RefUnwindSafe for IntersectionGraph
impl Send for IntersectionGraph
impl Sync for IntersectionGraph
impl Unpin for IntersectionGraph
impl UnsafeUnpin for IntersectionGraph
impl UnwindSafe for IntersectionGraph
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