Interpolate

Trait Interpolate 

Source
pub trait Interpolate: Clone {
    // Required method
    fn interpolate(&self, target: &Self, t: f64) -> Self;
}
Expand description

Trait for types that can be interpolated between two values

Used for smooth transitions in animations.

§Example

use ruviz::animation::Interpolate;

let start = 0.0_f64;
let end = 10.0_f64;

assert_eq!(start.interpolate(&end, 0.0), 0.0);
assert_eq!(start.interpolate(&end, 0.5), 5.0);
assert_eq!(start.interpolate(&end, 1.0), 10.0);

Required Methods§

Source

fn interpolate(&self, target: &Self, t: f64) -> Self

Interpolate between self and target at progress t (0.0 to 1.0)

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 Interpolate for f32

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl Interpolate for f64

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl Interpolate for i32

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl Interpolate for u32

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl Interpolate for Srgba

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl<T: Interpolate> Interpolate for Vec<T>

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Source§

impl<T: Interpolate, const N: usize> Interpolate for [T; N]

Source§

fn interpolate(&self, target: &Self, t: f64) -> Self

Implementors§