Struct glissade::InertialValue
source · pub struct InertialValue<T: TransitionItem> { /* private fields */ }Expand description
A value that smoothly goes to the target during a specific time.
The target can be changed at any time. No jumps will occur.
It’s expected that time is always increasing.
Every method receives current_time as a parameter to allow testing,
and have a consistent behavior during a single animation frame.
Implementations§
source§impl<T: TransitionItem> InertialValue<T>
impl<T: TransitionItem> InertialValue<T>
sourcepub fn new(value: T, start_time: SystemTime) -> Self
pub fn new(value: T, start_time: SystemTime) -> Self
Create a new inertial value at a specific time.
sourcepub fn is_finished(&self, current_time: SystemTime) -> bool
pub fn is_finished(&self, current_time: SystemTime) -> bool
Check if the inertial value reached the target.
sourcepub fn end_time(&self) -> SystemTime
pub fn end_time(&self) -> SystemTime
Get transition end time.
sourcepub fn get(&self, current_time: SystemTime) -> T
pub fn get(&self, current_time: SystemTime) -> T
Get the value of the inertial value at a specific time.
current_time- The time to get the value of the inertial value, usuallySystemTime::now().
sourcepub fn go_to(
self,
target: T,
current_time: SystemTime,
duration: Duration,
) -> Self
pub fn go_to( self, target: T, current_time: SystemTime, duration: Duration, ) -> Self
Create child inertial value with a new target at a specific time.
Easing is set to default (QuadraticInOut).
target- The new target value.current_time- The time to start the transition, usuallySystemTime::now().duration- The duration of the transition.
sourcepub fn ease_to(
self,
target: T,
current_time: SystemTime,
duration: Duration,
easing: Easing,
) -> Self
pub fn ease_to( self, target: T, current_time: SystemTime, duration: Duration, easing: Easing, ) -> Self
Create child inertial value with a new target, easing and start time.
target- The new target value.start_time- The time to start the transition, usuallySystemTime::now().duration- The duration of the transition.
Trait Implementations§
source§impl<T: Clone + TransitionItem> Clone for InertialValue<T>
impl<T: Clone + TransitionItem> Clone for InertialValue<T>
source§fn clone(&self) -> InertialValue<T>
fn clone(&self) -> InertialValue<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<T> Freeze for InertialValue<T>where
T: Freeze,
impl<T> RefUnwindSafe for InertialValue<T>where
T: RefUnwindSafe,
impl<T> Send for InertialValue<T>where
T: Send,
impl<T> Sync for InertialValue<T>where
T: Sync,
impl<T> Unpin for InertialValue<T>where
T: Unpin,
impl<T> UnwindSafe for InertialValue<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)