animation

Animation primitives: interpolation, easing curves, transition queues, and timelines. See also: properties.ease_to and properties.ease_to_later.

Structs

Timeline

Minimal timeline state used by animation-oriented controls.

Properties

playhead_position

Type: usize

Current playhead frame.

frame_count

Type: usize

Total number of frames.

is_playing

Type: bool

Whether the timeline is currently advancing.

Enums

Duration

A duration used by animation and transition systems.

Frames preserves Pax's historical frame-count semantics, while Milliseconds and Seconds advance from the chassis-provided monotonic wall clock.

Variants

Frames(Numeric)

Duration measured in runtime frames.

Milliseconds(Numeric)

Duration measured in milliseconds.

Seconds(Numeric)

Duration measured in seconds.

Implementations

as_frames_f64
pub fn as_frames_f64(&self) -> f64

Converts the duration to frames, using 60fps as the nominal conversion rate when converting wall-clock units for mixed-unit authoring.

as_milliseconds_f64
pub fn as_milliseconds_f64(&self) -> f64

Converts the duration to milliseconds, using 60fps as the nominal frame duration when converting frame units for mixed-unit authoring.

is_frame_based
pub fn is_frame_based(&self) -> bool

Returns true when the duration is expressed in frame units.

raw_value
pub fn raw_value(&self) -> f64

Raw value in this duration's own unit.


EasingCurve

Pre-built easing curves for use in transitions, as well as a Custom variant that can be used to specify an arbitrary easing curve via a function f: f64 -> f64 mapping a time on the unit interval to a multiplier on the unit interval.

Variants

Linear

A linear easing curve, where the interpolated value changes at a constant rate over time.

Hold

A hold easing curve, where the interpolated value remains constant until the end of the transition, at which point it jumps to the final value.

InQuad

A quadratic easing curve where the interpolated value starts slow and accelerates towards the end of the transition.

OutQuad

A quadratic easing curve where the interpolated value starts fast and decelerates towards the end of the transition.

InOutQuad

A quadratic easing curve where the interpolated value starts slow, accelerates towards the middle of the transition, and then decelerates towards the end of the transition.

InBack

A back easing curve where the interpolated value starts by briefly moving in the opposite direction before accelerating towards the final value.

OutBack

A back easing curve where the interpolated value overshoots the final value before settling back to it.

InOutBack

A back easing curve where the interpolated value starts by briefly moving in the opposite direction, then accelerates towards the final value, overshooting it before settling back to it.

Custom(Box<dyn Fn(f64) -> f64>)

A custom easing curve defined by a user-provided function that maps a time on the unit interval to a multiplier on the unit interval.

Implementations

interpolate
pub fn interpolate<T: Interpolatable>(&self, v0: &T, v1: &T, t: f64) -> T

Interpolates between v0 and v1 using t as time on the unit interval.

Traits

Interpolatable

Marks a value as able to participate in Pax property transitions.