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;
|
*vec = tvec.xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma(inline) f32
|
pragma(inline) T
|
||||||
Lerp(f32 x, f32 y, f32 a)
|
Lerp(T)(T x, T y, T a)
|
||||||
{
|
{
|
||||||
return x * (1 - a) + y * a;
|
return x * (1 - a) + y * a;
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma(inline) f32
|
pragma(inline) T
|
||||||
InverseLerp(f32 v, f32 min, f32 max)
|
InverseLerp(T)(T v, T min, T max)
|
||||||
{
|
{
|
||||||
return (v - min) / (max - min);
|
return (v - min) / (max - min);
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma(inline) f32
|
pragma(inline) T
|
||||||
Remap(f32 v, f32 in_min, f32 in_max, f32 out_min, f32 out_max)
|
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);
|
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, 1.0) == m1);
|
||||||
assert(Mix(m0, m1, 0.5) == Vec4(5.0));
|
assert(Mix(m0, m1, 0.5) == Vec4(5.0));
|
||||||
assert(Mix(m0, m1, 0.75) == Vec4(7.5));
|
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