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, _: TypedVector3D<T, U>) -> &[Polygon<T, U>]; fn solve(
&mut self,
input: &[Polygon<T, U>],
view: TypedVector3D<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, _: TypedVector3D<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: TypedVector3D<T, U>
) -> &[Polygon<T, U>] where
T: Clone,
U: Clone,
&mut self,
input: &[Polygon<T, U>],
view: TypedVector3D<T, U>
) -> &[Polygon<T, U>] where
T: Clone,
U: Clone,
Process a set of polygons at once.
Implementors
impl<T, U> Splitter<T, U> for BspSplitter<T, U> where
T: Copy + Debug + ApproxEq<T> + Sub<T, Output = T> + Add<T, Output = T> + Mul<T, Output = T> + Div<T, Output = T> + Zero + One + Float,
U: Debug,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>