VectorizedDecayAnimationSpec

Interface

Common
public interface VectorizedDecayAnimationSpec<V : AnimationVector>

VectorizedDecayAnimationSpecs are stateless vector based decay animation specifications. They do not assume any starting/ending conditions. Nor do they manage a lifecycle. All it stores is the configuration that is particular to the type of the decay animation: friction multiplier for exponentialDecay. Its stateless nature allows the same VectorizedDecayAnimationSpec to be reused by a few different running animations with different starting and ending values.

Since VectorizedDecayAnimationSpecs are stateless, it requires starting value/velocity and ending value to be passed in, along with playtime, to calculate the value or velocity at that time. Play time here is the progress of the animation in terms of milliseconds, where 0 means the start of the animation and getDurationNanos returns the play time for the end of the animation.

Note: For use cases where the starting values/velocity and ending values aren't expected to change, it is recommended to use DecayAnimation that caches these static values and hence does not require them to be supplied in the value/velocity calculation.

Functions

public fun getValueFromNanos(playTimeNanos: Long, initialValue: V, initialVelocity: V): V

Returns the value of the animation at the given time.

Parameters

playTimeNanosThe time elapsed in milliseconds since the initialValue of the animation
initialValueThe initialValue value of the animation
initialVelocityThe initialValue velocity of the animation
public fun getDurationNanos(initialValue: V, initialVelocity: V): Long

Returns the duration of the decay animation, in nanoseconds.

Parameters

initialValueinitialValue value of the animation
initialVelocityinitialValue velocity of the animation
public fun getVelocityFromNanos(playTimeNanos: Long, initialValue: V, initialVelocity: V): V

Returns the velocity of the animation at the given time.

Parameters

playTimeNanosThe time elapsed in milliseconds since the initialValue of the animation
initialValueThe initialValue value of the animation
initialVelocityThe initialValue velocity of the animation
public fun getTargetValue(initialValue: V, initialVelocity: V): V

Returns the target value of the animation based on the initial condition of the animation ( i.e. initial value and initial velocity).

Parameters

initialValueThe initial value of the animation
initialVelocityThe initial velocity of the animation