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", so this trait is not object safe.

Implementations on Foreign Types§

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

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<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; 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>>

Implementors§

Source§

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

Source§

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