hexga_math/other/
lerp.rs

1use super::*;
2
3// todo : lerp and easing using Time + Dt
4// todo : lerp using itself (for independant coef)
5pub trait Lerpable : Sized
6{
7    /// Restricted between `[0..1]`
8    fn lerp(self, dest : Self, coef : float) -> Self { self.lerp_unchecked(dest, coef.clamp(0., 1.)) }
9    /// Not restricted between `[0..1]`
10    fn lerp_unchecked(self, dest : Self, coef : float) -> Self;
11}
12impl<T> Lerpable for T where T: Mul<float,Output=Self> + Add<Self,Output=Self> + Sized
13{
14    fn lerp_unchecked(self, dest : Self, coef : float) -> Self { self * (1. - coef) + dest * coef  }
15}
16