ranim_core/time.rs
1//! Time vocabulary for animation evaluation.
2//!
3//! Animation evaluation converged on a single progress coordinate: the units
4//! of evaluation are **dimensionless progress** (`alpha ∈ [0, 1]`), not
5//! seconds. There is no scene clock channel anywhere in the evaluation path:
6//! an animation's *content* is a pure function of its own progress axis
7//! ("content is sequence"), and anything that needs real time is authored at
8//! the top level where the author knows the placement.
9//!
10//! Because progress is the only coordinate, there are no `Time`/`DeltaTime`
11//! point/span structs anymore — their `secs` payloads only ever made sense at
12//! the `AnimNode` level (start/duration/rate live there), and stripping
13//! them keeps the evaluation protocol free of node time configuration.
14//!
15//! Evaluators receive a plain `f64` progress (`alpha`) and a plain `f64`
16//! progress step (`delta_alpha`), so this module is nothing but the
17//! documentation of that coordinate.
18
19/// The sole evaluation coordinate: normalized progress in `[0, 1]`.
20///
21/// Lives as a bare `f64` in signatures (`Eval::eval_alpha`).
22pub type Alpha = f64;
23
24/// A uniform progress step (`1 / N` for a content declared as an N-step
25/// sequence).
26pub type DeltaAlpha = f64;