Trait plane_split::Splitter
[−]
[src]
pub trait Splitter<T, U> {
fn reset(&mut self);
fn add(&mut self, _: Polygon<T, U>);
fn sort(&mut self, _: TypedPoint3D<T, U>) -> &[Polygon<T, U>];
fn solve(
&mut self,
input: &[Polygon<T, U>],
view: TypedPoint3D<T, U>
) -> &[Polygon<T, U>]
where
T: Clone,
U: Clone,
{ ... }
}Generic plane splitter interface.
Required Methods
fn reset(&mut self)
Reset the splitter results.
fn add(&mut self, _: Polygon<T, U>)
Add a new polygon and return a slice of the subdivisions that avoid collision with any of the previously added polygons.
fn sort(&mut self, _: TypedPoint3D<T, U>) -> &[Polygon<T, U>]
Sort the produced polygon set by the ascending distance across the specified view vector. Return the sorted slice.
Provided Methods
fn solve(
&mut self,
input: &[Polygon<T, U>],
view: TypedPoint3D<T, U>
) -> &[Polygon<T, U>] where
T: Clone,
U: Clone,
&mut self,
input: &[Polygon<T, U>],
view: TypedPoint3D<T, U>
) -> &[Polygon<T, U>] where
T: Clone,
U: Clone,
Process a set of polygons at once.
Implementors
impl<T: Copy + Debug + PartialOrd + ApproxEq<T> + Sub<T, Output = T> + Add<T, Output = T> + Mul<T, Output = T> + Div<T, Output = T> + Zero + One + Float, U> Splitter<T, U> for BspSplitter<T, U>impl<T: Copy + Debug + PartialOrd + ApproxEq<T> + Sub<T, Output = T> + Add<T, Output = T> + Mul<T, Output = T> + Div<T, Output = T> + Zero + One + Float, U: Debug> Splitter<T, U> for NaiveSplitter<T, U>