From 022210bbb4bac4f8d6620aac64565dad146f3c75 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sat, 22 Dec 2018 18:25:56 -0800 Subject: Added clamp() function to math lib --- Common/interface/BasicMath.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'Common/interface') diff --git a/Common/interface/BasicMath.h b/Common/interface/BasicMath.h index 7add1f39..ab633357 100644 --- a/Common/interface/BasicMath.h +++ b/Common/interface/BasicMath.h @@ -863,6 +863,37 @@ Vector4 abs(const Vector4 &a) } +template +T clamp(T val, T _min, T _max) +{ + return val < _min ? _min : (val > _max ? _max : val); +} + +template +Vector2 clamp(const Vector2 &a, const Vector2 &_min, const Vector2 &_max) +{ + return Vector2( clamp(a.x, _min.x, _max.x), + clamp(a.y, _min.y, _max.y)); +} + +template +Vector3 clamp(const Vector3 &a, const Vector3 &_min, const Vector3 &_max) +{ + return Vector3( clamp(a.x, _min.x, _max.x), + clamp(a.y, _min.y, _max.y), + clamp(a.z, _min.z, _max.z)); +} + +template +Vector4 clamp(const Vector4 &a, const Vector4 &_min, const Vector4 &_max) +{ + return Vector4( clamp(a.x, _min.x, _max.x), + clamp(a.y, _min.y, _max.y), + clamp(a.z, _min.z, _max.z), + clamp(a.w, _min.w, _max.w)); +} + + template Vector3 cross(const Vector3 &a, const Vector3 &b) { -- cgit v1.2.3