Skip to main content

ScrollClock

Struct ScrollClock 

Source
pub struct ScrollClock { /* private fields */ }
Expand description

A Clock that derives delta-time from scroll position changes.

Instead of measuring wall time, ScrollClock converts position changes (in any unit — pixels, percentage, etc.) into normalised animation progress.

The delta() value represents the fraction of the scroll range that was traversed since the last call, which can be fed directly into Update::update().

Implementations§

Source§

impl ScrollClock

Source

pub fn new(start: f32, end: f32) -> Self

Create a new ScrollClock mapping position from start to end.

The animation progresses from 0.0 to 1.0 as position moves from start to end. Scrolling backwards produces negative delta.

Source

pub fn set_position(&mut self, position: f32)

Set the current scroll position.

The difference from the previous position is accumulated and returned by the next Clock::delta call.

Source

pub fn position(&self) -> f32

Current scroll position.

Source

pub fn progress(&self) -> f32

Current progress in 0.0..=1.0 (clamped).

Source

pub fn start(&self) -> f32

The start of the scroll range.

Source

pub fn end(&self) -> f32

The end of the scroll range.

Source

pub fn set_range(&mut self, start: f32, end: f32)

Update the scroll range at runtime.

Trait Implementations§

Source§

impl Clock for ScrollClock

Source§

fn delta(&mut self) -> f32

Returns the accumulated scroll delta as a fraction of the total range.

For a scroll range of 0..1000, scrolling from 0 to 500 produces a delta of 0.5. The accumulator is reset after each call.

Source§

impl Clone for ScrollClock

Source§

fn clone(&self) -> ScrollClock

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ScrollClock

Source§

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

Formats the value using the given formatter. Read more

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
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> 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.