misc & math
[vg.git] / vg_m.h
diff --git a/vg_m.h b/vg_m.h
index 950ebd792574240c5b3aa289b39fc695d5120056..c48f13e40ee510399008ae9cfb168b61258db45b 100644 (file)
--- a/vg_m.h
+++ b/vg_m.h
@@ -399,11 +399,16 @@ static inline void v3_normalize( v3f a )
    v3_muls( a, 1.f / v3_length( a ), a );
 }
 
-static inline f32 vg_lerpf( f32 a, f32 b, f32 t )
-{
+static inline f32 vg_lerpf( f32 a, f32 b, f32 t ){
    return a + t*(b-a);
 }
 
+static inline void vg_slewf( f32 *a, f32 b, f32 speed ){
+   f32 d = vg_signf( b-*a ),
+       c = *a + d*speed;
+   *a = vg_minf( b*d, c*d ) * d;
+}
+
 static inline f64 vg_lerp( f64 a, f64 b, f64 t )
 {
    return a + t*(b-a);