MultiStateAnimator

Struct MultiStateAnimator 

Source
pub struct MultiStateAnimator<T: Interpolatable, const N: usize> { /* private fields */ }
Expand description

Multi-state animator for keyframe-based animations.

This animator supports multiple keyframes with different easing functions between each pair. It automatically determines which keyframe pair to interpolate between based on the current progress.

Implementations§

Source§

impl<T: Interpolatable, const N: usize> MultiStateAnimator<T, N>

Source

pub fn new() -> Self

Create a new multi-state animator.

Source

pub fn add_keyframe( &mut self, progress: Progress, state: T, easing: EasingFunction, ) -> ChartResult<()>

Add a keyframe at the specified progress.

§Arguments
  • progress - Progress position (0-100)
  • state - State at this keyframe
  • easing - Easing function to use when transitioning TO this keyframe
§Returns

Ok(()) on success, Err if the animator is full

Source

pub fn value_at(&self, progress: Progress) -> Option<T>

Get the interpolated value at the given progress.

§Arguments
  • progress - Animation progress (0-100)
§Returns

The interpolated value, or None if no keyframes are set

Source

pub fn keyframe_count(&self) -> usize

Get the number of keyframes.

Source

pub fn clear(&mut self)

Clear all keyframes.

Trait Implementations§

Source§

impl<T: Clone + Interpolatable, const N: usize> Clone for MultiStateAnimator<T, N>

Source§

fn clone(&self) -> MultiStateAnimator<T, N>

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<T: Debug + Interpolatable, const N: usize> Debug for MultiStateAnimator<T, N>

Source§

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

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

impl<T: Interpolatable, const N: usize> Default for MultiStateAnimator<T, N>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T, const N: usize> Freeze for MultiStateAnimator<T, N>
where T: Freeze,

§

impl<T, const N: usize> RefUnwindSafe for MultiStateAnimator<T, N>
where T: RefUnwindSafe,

§

impl<T, const N: usize> Send for MultiStateAnimator<T, N>
where T: Send,

§

impl<T, const N: usize> Sync for MultiStateAnimator<T, N>
where T: Sync,

§

impl<T, const N: usize> Unpin for MultiStateAnimator<T, N>
where T: Unpin,

§

impl<T, const N: usize> UnwindSafe for MultiStateAnimator<T, N>
where T: UnwindSafe,

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.