pub struct Sewn {
pub shells: Vec<Shape>,
pub joined: usize,
pub free_edges: Vec<Shape>,
pub history: History,
}Expand description
What sewing produced.
Fields§
§shells: Vec<Shape>One shell per connected group of faces.
More than one means the faces did not all meet. That is reported rather than papered over: a single shell containing disconnected pieces would claim a closure that is not there.
joined: usizeHow many pairs of edges were found to be the same edge.
free_edges: Vec<Shape>Edges still used by exactly one face after sewing.
Zero means every shell is closed. Anything else is the boundary that remains, and a caller that needs a solid needs this to be empty.
history: HistoryHistory, as every operation reports.
Implementations§
Source§impl Sewn
impl Sewn
Sourcepub fn edges_walked_one_way(&self, model: &Model) -> OgeomResult<Vec<Shape>>
pub fn edges_walked_one_way(&self, model: &Model) -> OgeomResult<Vec<Shape>>
The edges two faces of a shell both walk the same way, in shell order: none where every face keeps its material on the left of its rings.
Sewing turns faces until every edge two of them share is walked once each way, so an edge named here belongs to a shell that admits no such orientation (a band with a half twist), whose faces sewing left as given.
§Errors
OgeomError::Dangling if a shell
is not in model.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Sewn
impl RefUnwindSafe for Sewn
impl Send for Sewn
impl Sync for Sewn
impl Unpin for Sewn
impl UnsafeUnpin for Sewn
impl UnwindSafe for Sewn
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.