The track's value type, matching its adapter.
The track's value type, matching its adapter.
ReadonlyadapterAdapter for this track's value type; also its §17 track type.
ReadonlyendLast keyframe time in seconds.
ReadonlyinPer-key incoming tangents; empty unless the mode is "hermite".
ReadonlyinterpolationInterpolation mode (§17).
ReadonlyoutPer-key outgoing tangents; empty unless the mode is "hermite".
ReadonlypathProperty path, resolved by the mixer (see the module header).
ReadonlystartFirst keyframe time in seconds.
ReadonlytimesKeyframe times in seconds, strictly increasing.
ReadonlyvaluesKeyframe values, index-parallel with AnimationTrack.times.
Number of keyframes; always at least one.
Evaluates the track at timeSeconds (clip-local) and returns the effective
value: the mutated out for in-place value kinds, the computed value
itself for number, boolean, and discrete kinds. Callers must use the
return value — the same split as ValueAdapter.lerp, for the same
reason (a primitive has no storage to write through).
Pure and allocation-free. out must not alias a keyframe value.
A typed keyframe sequence over clip-local time (§17).
Sampling outside the key range
Clamped, not extrapolated: below the first key the first value is returned, at or above the last key the last one. This differs from §13's trajectories, which extrapolate their closed forms, and the difference is deliberate — a trajectory is a curve that happens to be parameterized by time, while a clip track is authored content with a beginning and an end. Repeating, ping-ponging, and holding past the end are the player's decisions (WP-4.6), made by transforming the time it passes in; a track that extrapolated would fight every one of them.
Sampling time must be finite: nothing is validated on the sample path (it is per-frame, per-track code), so a non-finite time propagates into the result rather than throwing.
Overshoot
"cubic"and"hermite"can leave the interval spanned by their keyframes — that is what makes them useful for anticipation and follow-through — and nothing here clamps them back. A track whose values must stay in range uses"linear"or"step".