Trait cogs_gamedev::ease::Interpolator[][src]

pub trait Interpolator<Value>: Float + FloatConst {
    fn lerp(self, start: Value, end: Value) -> Value;

    fn sine_in(self, start: Value, end: Value) -> Value { ... }
fn sine_out(self, start: Value, end: Value) -> Value { ... }
fn sine_in_out(self, start: Value, end: Value) -> Value { ... }
fn quad_in(self, start: Value, end: Value) -> Value { ... }
fn quad_out(self, start: Value, end: Value) -> Value { ... }
fn quad_in_out(self, start: Value, end: Value) -> Value { ... } }
Expand description

Trait for things that can interpolate values.

See this handy cheatsheet.

Required methods

fn lerp(self, start: Value, end: Value) -> Value[src]

Get a value self% between start and end. self being 0 should mean all the way at start; self being 1 means all the way at end. The implementation must accept values outside of 0 and 1, however, for easing functions like elastic_in.

All the easing functions are defined in terms of this function. An equation is run on self to get a modified value, and the modified value has lerp called on it.

Provided methods

fn sine_in(self, start: Value, end: Value) -> Value[src]

fn sine_out(self, start: Value, end: Value) -> Value[src]

fn sine_in_out(self, start: Value, end: Value) -> Value[src]

fn quad_in(self, start: Value, end: Value) -> Value[src]

fn quad_out(self, start: Value, end: Value) -> Value[src]

fn quad_in_out(self, start: Value, end: Value) -> Value[src]

Implementors

impl<F> Interpolator<F> for F where
    F: Float + FloatConst
[src]

fn lerp(self, start: F, end: F) -> F[src]

impl<F, const N: usize> Interpolator<[F; N]> for F where
    F: Float + FloatConst + Copy
[src]

fn lerp(self, start: [F; N], end: [F; N]) -> [F; N][src]