Skip to main content

MomentumDecay

Struct MomentumDecay 

Source
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

Source§

fn clone(&self) -> MomentumDecay

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for MomentumDecay

Source§

impl Debug for MomentumDecay

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MomentumDecay

Source§

fn default() -> MomentumDecay

Returns the “default value” for a type. Read more
Source§

impl PartialEq for MomentumDecay

Source§

fn eq(&self, other: &MomentumDecay) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MomentumDecay

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.