pub enum CsgTree {
Leaf(Box<dyn ImplicitSurface>),
Node {
op: CsgOp,
left: Box<CsgTree>,
right: Box<CsgTree>,
},
}Expand description
A node in a CSG tree.
Each node is either a leaf (wrapping an ImplicitSurface) or an interior
node combining two subtrees with a CsgOp.
Variants§
Implementations§
Source§impl CsgTree
impl CsgTree
Sourcepub fn leaf(s: impl ImplicitSurface + 'static) -> Self
pub fn leaf(s: impl ImplicitSurface + 'static) -> Self
Construct a leaf node from any ImplicitSurface.
Sourcepub fn intersection(left: CsgTree, right: CsgTree) -> Self
pub fn intersection(left: CsgTree, right: CsgTree) -> Self
Construct an intersection node.
Sourcepub fn difference(left: CsgTree, right: CsgTree) -> Self
pub fn difference(left: CsgTree, right: CsgTree) -> Self
Construct a difference node (left minus right).
Auto Trait Implementations§
impl Freeze for CsgTree
impl !RefUnwindSafe for CsgTree
impl Send for CsgTree
impl Sync for CsgTree
impl Unpin for CsgTree
impl UnsafeUnpin for CsgTree
impl !UnwindSafe for CsgTree
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
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.