[][src]Trait plane_split::Splitter

pub trait Splitter<T, U, A> {
    fn reset(&mut self);
fn add(&mut self, polygon: Polygon<T, U, A>);
fn sort(&mut self, view: Vector3D<T, U>) -> &[Polygon<T, U, A>]; fn solve(
        &mut self,
        input: &[Polygon<T, U, A>],
        view: Vector3D<T, U>
    ) -> &[Polygon<T, U, A>]
    where
        T: Clone,
        U: Clone,
        A: Copy
, { ... } }

Generic plane splitter interface

Required methods

fn reset(&mut self)

Reset the splitter results.

fn add(&mut self, polygon: Polygon<T, U, A>)

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, view: Vector3D<T, U>) -> &[Polygon<T, U, A>]

Sort the produced polygon set by the ascending distance across the specified view vector. Return the sorted slice.

Loading content...

Provided methods

fn solve(
    &mut self,
    input: &[Polygon<T, U, A>],
    view: Vector3D<T, U>
) -> &[Polygon<T, U, A>] where
    T: Clone,
    U: Clone,
    A: Copy

Process a set of polygons at once.

Loading content...

Implementors

impl<T, U, A> Splitter<T, U, A> for BspSplitter<T, U, A> 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,
    A: Copy + Debug + Default
[src]

Loading content...