🌈 Create new beautiful Compose Gradients with our new wesite ->
Interface

Interpolatable

Represents an object which may be able to be linearly interpolated with another object.

Source set: Common
public interface Interpolatable

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

Functions

lerp

Source set: Common
public 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

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

Return

The interpolated object.

Members

Companion

Source set: Common
public companion object

Functions

lerp

Source set: Common
public fun lerp(a: Any?, b: Any?, t: Float): Any?

Attempt to Linearly interpolates between two values. If either of the values are Interpolatable, this will attempt to use their lerp functions. If the interpolation is not possible, this will return a if t is less than 0.5 and b otherwise.

If a implements Interpolatable it will be attempted first.

Parameters

a The start value.
b The end value.
t The fraction to interpolate between the two values. This is usually between 0 and 1, but it is valid for it to be outside of this range.

Return

The interpolated value.