pub struct MomentumDecay {
pub model: Option<MomentumDecayModel>,
pub half_life_ms: Option<f64>,
pub stop_speed: Option<f64>,
pub distance: Option<f64>,
pub duration_ms: Option<f64>,
pub easing: Option<UnitBezier>,
pub min_speed: Option<f64>,
pub max_speed: Option<f64>,
pub max_distance: Option<f64>,
}Expand description
How one part of a gesture’s momentum slows from its release speed.
Speeds and distances are in the part’s unit: logical pixels for pan, zoom
levels for zoom, and degrees for bearing and pitch. A setting whose bit
isn’t set takes the part’s default, which GestureMomentum lists.
min_speed is finite and not negative, and every other number is finite and
positive. A friction decay can serve every release, as a preset that matches
a platform’s scrolling. An eased glide takes its direction from the part’s
velocity, and its distance and duration from the caller’s plan.
See mln_momentum_decay in the
C API reference.
Fields§
§model: Option<MomentumDecayModel>§half_life_ms: Option<f64>For MomentumDecayModel::Friction, how long the speed takes to halve.
stop_speed: Option<f64>For MomentumDecayModel::Friction, the speed at which it ends.
distance: Option<f64>Required for MomentumDecayModel::Ease.
duration_ms: Option<f64>Required for MomentumDecayModel::Ease.
easing: Option<UnitBezier>For MomentumDecayModel::Ease, the share of distance covered over the
share of duration_ms. Its control points are between 0 and 1, so the
glide never passes its distance. Defaults to (0, 0, 0.25, 1), the curve
that camera animations ease along by default. Android’s scroll fling
follows (0.175, 0.5, 0.35, 1).
min_speed: Option<f64>A slower release starts no momentum.
max_speed: Option<f64>For MomentumDecayModel::Friction, a faster release counts as this.
max_distance: Option<f64>The farthest the part moves. A friction release that would move farther starts slower, so it ends sooner, and a planned glide moves at most this far over its duration.
Trait Implementations§
Source§impl Clone for MomentumDecay
impl Clone for MomentumDecay
Source§fn clone(&self) -> MomentumDecay
fn clone(&self) -> MomentumDecay
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for MomentumDecay
Source§impl Debug for MomentumDecay
impl Debug for MomentumDecay
Source§impl Default for MomentumDecay
impl Default for MomentumDecay
Source§fn default() -> MomentumDecay
fn default() -> MomentumDecay
Source§impl PartialEq for MomentumDecay
impl PartialEq for MomentumDecay
impl StructuralPartialEq for MomentumDecay
Auto Trait Implementations§
impl Freeze for MomentumDecay
impl RefUnwindSafe for MomentumDecay
impl Send for MomentumDecay
impl Sync for MomentumDecay
impl Unpin for MomentumDecay
impl UnsafeUnpin for MomentumDecay
impl UnwindSafe for MomentumDecay
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more