pub enum EasingCurve {
Linear,
Hold,
InQuad,
OutQuad,
InOutQuad,
InBack,
OutBack,
InOutBack,
Custom(Box<dyn Fn(f64) -> f64>),
}Expand description
Pre-built easing curves for use in transitions, as well as a Custom variant that can be used to
specify an arbitrary easing curve via a function f: f64 -> f64 mapping a time on the unit interval to a multiplier on the unit interval.
Variants§
Linear
A linear easing curve, where the interpolated value changes at a constant rate over time.
Hold
A hold easing curve, where the interpolated value remains constant until the end of the transition, at which point it jumps to the final value.
InQuad
A quadratic easing curve where the interpolated value starts slow and accelerates towards the end of the transition.
OutQuad
A quadratic easing curve where the interpolated value starts fast and decelerates towards the end of the transition.
InOutQuad
A quadratic easing curve where the interpolated value starts slow, accelerates towards the middle of the transition, and then decelerates towards the end of the transition.
InBack
A back easing curve where the interpolated value starts by briefly moving in the opposite direction before accelerating towards the final value.
OutBack
A back easing curve where the interpolated value overshoots the final value before settling back to it.
InOutBack
A back easing curve where the interpolated value starts by briefly moving in the opposite direction, then accelerates towards the final value, overshooting it before settling back to it.
Custom(Box<dyn Fn(f64) -> f64>)
A custom easing curve defined by a user-provided function that maps a time on the unit interval to a multiplier on the unit interval.
Implementations§
Source§impl EasingCurve
impl EasingCurve
Sourcepub fn interpolate<T>(&self, v0: &T, v1: &T, t: f64) -> Twhere
T: Interpolatable,
pub fn interpolate<T>(&self, v0: &T, v1: &T, t: f64) -> Twhere
T: Interpolatable,
Interpolates between v0 and v1 using t as time on the unit interval.