change math funcs to templates
This commit is contained in:
parent
246e7006f5
commit
fc824c4191
19
math.d
19
math.d
@ -952,22 +952,22 @@ Transform(Vec3* vec, Mat4* mat, f32 last = 1.0)
|
||||
*vec = tvec.xyz;
|
||||
}
|
||||
|
||||
pragma(inline) f32
|
||||
Lerp(f32 x, f32 y, f32 a)
|
||||
pragma(inline) T
|
||||
Lerp(T)(T x, T y, T a)
|
||||
{
|
||||
return x * (1 - a) + y * a;
|
||||
}
|
||||
|
||||
pragma(inline) f32
|
||||
InverseLerp(f32 v, f32 min, f32 max)
|
||||
pragma(inline) T
|
||||
InverseLerp(T)(T v, T min, T max)
|
||||
{
|
||||
return (v - min) / (max - min);
|
||||
}
|
||||
|
||||
pragma(inline) f32
|
||||
Remap(f32 v, f32 in_min, f32 in_max, f32 out_min, f32 out_max)
|
||||
pragma(inline) T
|
||||
Remap(T)(T v, T in_min, T in_max, T out_min, T out_max)
|
||||
{
|
||||
f32 t = InverseLerp(v, in_min, in_max);
|
||||
T t = InverseLerp(v, in_min, in_max);
|
||||
return Lerp(out_min, out_max, t);
|
||||
}
|
||||
|
||||
@ -1217,5 +1217,10 @@ version(DLIB_TEST) unittest
|
||||
assert(Mix(m0, m1, 1.0) == m1);
|
||||
assert(Mix(m0, m1, 0.5) == Vec4(5.0));
|
||||
assert(Mix(m0, m1, 0.75) == Vec4(7.5));
|
||||
|
||||
void TestModify(Vec4 v)
|
||||
{
|
||||
v.r = 55;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user