[][src]Trait plane_split::Splitter

pub trait Splitter<T, U> {
    fn reset(&mut self);
fn add(&mut self, polygon: Polygon<T, U>);
fn sort(&mut self, view: 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: 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, view: TypedVector3D<T, U>) -> &[Polygon<T, U>]

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>],
    view: TypedVector3D<T, U>
) -> &[Polygon<T, U>] where
    T: Clone,
    U: Clone

Process a set of polygons at once.

Loading content...

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
[src]

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

Loading content...