pub enum Curve {
Linear,
EaseIn,
EaseOut,
EaseInOut,
Emphasized,
Cubic(f64, f64, f64, f64),
}Expand description
An easing curve mapping normalized time t ∈ [0, 1] to eased progress ∈ [0, 1].
The named variants are the CSS timing functions plus Material 3’s
Emphasized; Curve::Cubic is a general cubic-Bézier. t is clamped first.
Variants§
Linear
t unchanged.
EaseIn
CSS ease-in — cubic-bezier(0.42, 0, 1, 1).
EaseOut
CSS ease-out — cubic-bezier(0, 0, 0.58, 1).
EaseInOut
CSS ease-in-out — cubic-bezier(0.42, 0, 0.58, 1).
Emphasized
Material 3 emphasized easing — cubic-bezier(0.2, 0.0, 0.0, 1.0).
Cubic(f64, f64, f64, f64)
A cubic-Bézier with control points (x1, y1), (x2, y2) (endpoints fixed at
(0, 0)/(1, 1)), as CSS cubic-bezier().
Implementations§
Source§impl Curve
impl Curve
Sourcepub fn transform(self, t: f64) -> f64
pub fn transform(self, t: f64) -> f64
Evaluate the eased progress at normalized time t (clamped to [0, 1]).
Sourcepub fn interval(self, start: f64, end: f64) -> SegmentedCurve
pub fn interval(self, start: f64, end: f64) -> SegmentedCurve
Confine this curve to the [start, end] fraction of the timeline (Flutter’s
Interval): 0.0 before start, 1.0 from end, and self re-evaluated
at the rescaled local time between. An interval with end <= start is an
instantaneous step at start.
Returns a SegmentedCurve rather than Curve because an Interval
variant holding a Curve by value would be infinitely sized, and
AnimationController relies on Curve: Copy.