pub trait FloatExt {
// Required methods
fn lerp(self, rhs: Self, s: Self) -> Self;
fn inverse_lerp(a: Self, b: Self, v: Self) -> Self;
fn remap(
self,
in_start: Self,
in_end: Self,
out_start: Self,
out_end: Self,
) -> Self;
}Required Methods§
Sourcefn lerp(self, rhs: Self, s: Self) -> Self
fn lerp(self, rhs: Self, s: Self) -> Self
Performs a linear interpolation between self and rhs based on the value s.
When s is 0, the result will be self. When s is 1, the result
will be rhs. When s is outside of the range [0, 1], the result is linearly
extrapolated.
Sourcefn inverse_lerp(a: Self, b: Self, v: Self) -> Self
fn inverse_lerp(a: Self, b: Self, v: Self) -> Self
Returns v normalized to the range [a, b].
When v is equal to a the result will be 0. When v is equal to b will be 1.
When v is outside of the range [a, b], the result is linearly extrapolated.
a and b must not be equal, otherwise the result will be either infinite or NAN.
Sourcefn remap(
self,
in_start: Self,
in_end: Self,
out_start: Self,
out_end: Self,
) -> Self
fn remap( self, in_start: Self, in_end: Self, out_start: Self, out_end: Self, ) -> Self
Remap self from the input range to the output range.
When self is equal to in_start this returns out_start.
When self is equal to in_end this returns out_end.
When self is outside of the range [in_start, in_end], the result is linearly extrapolated.
in_start and in_end must not be equal, otherwise the result will be either infinite or NAN.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.