pub enum Splitter<'a> {
HandRolled,
Provider(&'a dyn MeshBoolean),
}Expand description
How a solid gets cut in two.
The variants are deliberately not a build-time switch: a caller may use the hand-rolled clipper for one solid and a provider for the next.
Variants§
HandRolled
Clip in-crate, with no boolean backend.
Provider(&'a dyn MeshBoolean)
Delegate to a mesh boolean provider.
Implementations§
Source§impl Splitter<'_>
impl Splitter<'_>
Sourcepub fn split(
&self,
mesh: &TriMesh,
normal: Vec3,
offset: Scalar,
tolerance: Tolerance,
) -> Result<(Option<TriMesh>, Option<TriMesh>), DecomposeError>
pub fn split( &self, mesh: &TriMesh, normal: Vec3, offset: Scalar, tolerance: Tolerance, ) -> Result<(Option<TriMesh>, Option<TriMesh>), DecomposeError>
Cut mesh by the plane normal · x = offset.
Returns the part behind the plane and the part in front, each closed.
None for a side means the plane did not separate any material there.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Splitter<'a>
impl<'a> !RefUnwindSafe for Splitter<'a>
impl<'a> Send for Splitter<'a>
impl<'a> Sync for Splitter<'a>
impl<'a> Unpin for Splitter<'a>
impl<'a> !UnwindSafe for Splitter<'a>
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