Skip to main content

WaveFrontCompatible

Trait WaveFrontCompatible 

Source
pub trait WaveFrontCompatible<'a> {
    type Scalar: Float + Debug + AddAssign + Display;

    // Provided methods
    fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]> { ... }
    fn point_color_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]> { ... }
    fn uv_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 2]> { ... }
    fn norm_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]> { ... }
    fn segment_iterator(&'a self) -> impl Iterator<Item = [usize; 2]> { ... }
    fn pos_index_iterator(
        &'a self,
    ) -> impl Iterator<Item = impl Iterator<Item = usize>> { ... }
    fn uv_index_iterator(
        &'a self,
    ) -> impl Iterator<Item = impl Iterator<Item = usize>> { ... }
    fn norm_index_iterator(
        &'a self,
    ) -> impl Iterator<Item = impl Iterator<Item = usize>> { ... }
}

Required Associated Types§

Provided Methods§

Source

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source

fn point_color_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source

fn uv_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 2]>

Source

fn norm_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source

fn segment_iterator(&'a self) -> impl Iterator<Item = [usize; 2]>

Source

fn pos_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source

fn uv_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source

fn norm_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, V, S, I> WaveFrontCompatible<'a> for (&Vec<V>, &Vec<Vec<I>>)
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug, usize: TryFrom<I>, I: PrimInt + Display,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source§

fn pos_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source§

impl<'a, V, S, I> WaveFrontCompatible<'a> for (&Vec<V>, &Vec<[I; 2]>)
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug, usize: TryFrom<I>, I: PrimInt + Display,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source§

fn segment_iterator(&'a self) -> impl Iterator<Item = [usize; 2]>

Source§

impl<'a, V, S, I> WaveFrontCompatible<'a> for (&Vec<V>, &Vec<[I; 3]>)
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug, usize: TryFrom<I>, I: PrimInt + Display,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source§

fn pos_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source§

impl<'a, V, S, I> WaveFrontCompatible<'a> for (Vec<V>, Vec<[I; 3]>)
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug, usize: TryFrom<I>, I: PrimInt + Display,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source§

fn pos_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source§

impl<'a, V, S> WaveFrontCompatible<'a> for (&Vec<V>, &Vec<usize>)
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Source§

fn pos_index_iterator( &'a self, ) -> impl Iterator<Item = impl Iterator<Item = usize>>

Source§

impl<'a, V, S> WaveFrontCompatible<'a> for Vec<V>
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug,

Source§

type Scalar = S

Source§

fn pos_iterator(&'a self) -> impl Iterator<Item = [Self::Scalar; 3]>

Implementors§

Source§

impl<'a, V, S> WaveFrontCompatible<'a> for ColoredVerts<'a, V>
where V: VectorSpace<Scalar = S>, S: Float + AddAssign + Display + Debug,

Source§

impl<'a> WaveFrontCompatible<'a> for ObjData