[][src]Trait splines::interpolate::Interpolate

pub trait Interpolate<T>: Sized + Copy + Linear<T> {
    fn lerp(a: Self, b: Self, t: T) -> Self;
fn quadratic_bezier(a: Self, u: Self, b: Self, t: T) -> Self;
fn cubic_bezier(a: Self, u: Self, v: Self, b: Self, t: T) -> Self; fn cubic_hermite(
        _: (Self, T),
        a: (Self, T),
        b: (Self, T),
        _: (Self, T),
        t: T
    ) -> Self { ... } }

Keys that can be interpolated in between. Implementing this trait is required to perform sampling on splines.

T is the variable used to sample with. Typical implementations use f32 or f64, but you’re free to use the ones you like. Feel free to have a look at Spline::sample for instance to know which trait your type must implement to be usable.

Required methods

fn lerp(a: Self, b: Self, t: T) -> Self

Linear interpolation.

fn quadratic_bezier(a: Self, u: Self, b: Self, t: T) -> Self

Quadratic Bézier interpolation.

fn cubic_bezier(a: Self, u: Self, v: Self, b: Self, t: T) -> Self

Cubic Bézier interpolation.

Loading content...

Provided methods

fn cubic_hermite(
    _: (Self, T),
    a: (Self, T),
    b: (Self, T),
    _: (Self, T),
    t: T
) -> Self

Cubic hermite interpolation.

Default to lerp.

Loading content...

Implementations on Foreign Types

impl<T> Interpolate<T> for Vector1<T> where
    Self: InnerSpace<Scalar = T>,
    T: Additive + BaseFloat + One
[src]

impl<T> Interpolate<T> for Vector2<T> where
    Self: InnerSpace<Scalar = T>,
    T: Additive + BaseFloat + One
[src]

impl<T> Interpolate<T> for Vector3<T> where
    Self: InnerSpace<Scalar = T>,
    T: Additive + BaseFloat + One
[src]

impl<T> Interpolate<T> for Vector4<T> where
    Self: InnerSpace<Scalar = T>,
    T: Additive + BaseFloat + One
[src]

impl<T> Interpolate<T> for Quaternion<T> where
    Self: InnerSpace<Scalar = T>,
    T: Additive + BaseFloat + One
[src]

impl Interpolate<f32> for f32[src]

impl Interpolate<f64> for f64[src]

impl Interpolate<f32> for f64[src]

impl Interpolate<f64> for f32[src]

impl<T, V> Interpolate<T> for Vector1<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

impl<T, V> Interpolate<T> for Vector2<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

impl<T, V> Interpolate<T> for Vector3<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

impl<T, V> Interpolate<T> for Vector4<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

impl<T, V> Interpolate<T> for Vector5<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

impl<T, V> Interpolate<T> for Vector6<V> where
    Self: Linear<T>,
    T: Additive + One + Mul<T, Output = T>,
    V: One + Zero + Additive + Scalar + ClosedAdd + ClosedMul + ClosedSub + Interpolate<T>, 
[src]

Loading content...

Implementors

Loading content...