X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgeometry%2Fdistance.hpp;h=ef2f8a2fee5c570bd4dac293a8c190c0399b16cf;hb=7c9675c5678f94bfbdf96e55f2865c53bd42fe7e;hp=b6955af49391e570cd81970e9a75a57bd9787c9f;hpb=f5de855fbd4bf5b0df1cad950cbe9069e41369ca;p=blank.git diff --git a/src/geometry/distance.hpp b/src/geometry/distance.hpp index b6955af..ef2f8a2 100644 --- a/src/geometry/distance.hpp +++ b/src/geometry/distance.hpp @@ -15,6 +15,15 @@ inline bool iszero(const T &v) noexcept { return length2(v) < std::numeric_limits::epsilon(); } +template +inline void limit(Vec &v, float max) noexcept { + float len2 = length2(v); + float max2 = max * max; + if (len2 > max2) { + v = normalize(v) * max; + } +} + template T manhattan_distance(const glm::tvec3 &a, const glm::tvec3 &b) noexcept { return compAdd(abs(a - b));