#[non_exhaustive]pub struct Animation {
pub current: AnimValue,
pub target: AnimValue,
pub velocity: AnimChannels,
pub timing: Timing,
pub started_at: Instant,
pub last_step: Instant,
pub from: Option<AnimValue>,
/* private fields */
}Expand description
In-flight animation state for one (node, prop) pair. Stored on
crate::state::UiState keyed by (ComputedId, AnimProp).
current is the read-back view consumed by write_prop — for
AnimValue::Color that’s u8 rgba. The integrator’s per-frame
motion near equilibrium is sub-integer in rgb units (typical
vel * dt ≈ 0.1–0.4 once the spring is close to target), so
integrating against the rounded view loses fractional progress
every frame and the integrator freezes a few rgb units off
target. current_precise is the lossless f32 mirror integrators
actually read and write across ticks.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.current: AnimValue§target: AnimValue§velocity: AnimChannels§timing: Timing§started_at: Instant§last_step: Instant§from: Option<AnimValue>For tweens, the value at started_at. Springs are fully
determined by current+velocity, so from stays None.
Implementations§
Source§impl Animation
impl Animation
pub fn new( current: AnimValue, target: AnimValue, timing: Timing, now: Instant, ) -> Self
Sourcepub fn retarget(&mut self, target: AnimValue, now: Instant)
pub fn retarget(&mut self, target: AnimValue, now: Instant)
Re-target a running animation. Current value and velocity carry
over so interrupted motion eases from where it is, not from rest.
For tweens, from snaps to the current sample so the new curve
starts there; the tween clock resets.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Animation
impl RefUnwindSafe for Animation
impl Send for Animation
impl Sync for Animation
impl Unpin for Animation
impl UnsafeUnpin for Animation
impl UnwindSafe for Animation
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,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.