Pure dimension-advance math for playback: one step of the animation
(next value + loop/bounce/once boundary handling), extracted from
DimensionAnimationManager so it can be used BOTH to advance the real
playhead (the manager's per-tick update, which then applies the returned
direction) and to PEEK the next value without mutating any state (the
t+1 slice prefetcher — DimensionAnimationManager.peekNextValue).
No state object goes in and none is mutated: direction changes come back
in the result instead (the manager's old handleBoundary mutated
state.direction in place, which made peeking impossible).
Pure dimension-advance math for playback: one step of the animation (next value + loop/bounce/once boundary handling), extracted from
DimensionAnimationManagerso it can be used BOTH to advance the real playhead (the manager's per-tick update, which then applies the returned direction) and to PEEK the next value without mutating any state (the t+1 slice prefetcher —DimensionAnimationManager.peekNextValue).No
stateobject goes in and none is mutated: direction changes come back in the result instead (the manager's oldhandleBoundarymutatedstate.directionin place, which made peeking impossible).