diff --git a/src/vmath.nim b/src/vmath.nim index 554f743..50fcace 100644 --- a/src/vmath.nim +++ b/src/vmath.nim @@ -791,6 +791,12 @@ proc lengthSq*[T](a: GVec4[T]): T = proc normalize*[T](a: GVec234[T]): type(a) = a / a.length +proc normalize_safe*[T](a: GVec234[T]): type(a) = + let l = a.length + if l != 0: + return a / l + # else, implicit result is vec(0) + proc mix*[T: SomeFloat](a, b: GVec234[T], v: T): type(a) = a * (1.0 - v) + b * v