pub trait Interpolator<Value>: Float + FloatConst {
// Required method
fn lerp(self, start: Value, end: Value) -> Value;
// Provided methods
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.
Required Methods§
Sourcefn lerp(self, start: Value, end: Value) -> Value
fn lerp(self, start: Value, end: Value) -> Value
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
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
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.