Interpolatable

Interface

Common
interface Interpolatable

Represents an object which may be able to be linearly interpolated with another object. Usually used during animation.

Functions

fun lerp(other: Any?, t: Float): Any?

This method is defined such that a value of t being 1.0 means that the interpolation has finished, meaning that this method should return either other (or something equivalent to other), 0.0 meaning that the interpolation has not started, returning this (or something equivalent to this), and values in between meaning that the interpolation is at the relevant point on the timeline between this and other. The interpolation can be extrapolated beyond 0.0 and 1.0, so negative values and values greater than 1.0 are valid.

Note that the type of other may not be the same as the type of this, however if the implementation knows how to losslessly convert from one type to another, the conversion can be made in order to optimistically provide a valid interpolation.

If other is null, this can be interpreted as interpolating between "nothing" or, "no effect", into whatever the value of this is. In this case, if it is possible to construct a version of this type that is visually or semantically equivalent to "no effect", then it might make sense to return an interpolation between that value and this.

If there is no known way to interpolate between the two values, the implementation should return null.

Parameters

otherThe other object to be intorpolated with this one.
tThe position on the timeline. This is usually between 0 and 1, but it is valid for it to be outside of this range.

Returns

The interpolated object.