From e29ad8b418d6684fb8eda604ce9d129312523279 Mon Sep 17 00:00:00 2001 From: Austin Morlan Date: Tue, 18 Sep 2018 20:01:03 -0700 Subject: [PATCH] Add Length function to Vector --- include/vec.h | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/include/vec.h b/include/vec.h index b63e41d..bd56eda 100644 --- a/include/vec.h +++ b/include/vec.h @@ -12,10 +12,10 @@ struct Vector inline void Normalize(void) { - float length = sqrtf(x*x + y*y + z*z); + float length = Length(); // zero length - if (length < EPSILON_E3) + if (length == 0.0f) { x = 0.0f; y = 0.0f; @@ -31,6 +31,19 @@ struct Vector } } + inline float Length(void) + { + float result = sqrtf(x*x + y*y + z*z); + + // zero length + if (result < EPSILON_E3) + { + result = 0.0f; + } + + return result; + } + inline static float Dot(Vector v1, Vector v2) { float result; @@ -96,6 +109,18 @@ inline Vector &operator+=(Vector &v1, Vector v2) return v1; } +// f * v +inline Vector operator*(float f, Vector &v) +{ + Vector result; + + result.x = v.x * f; + result.y = v.y * f; + result.z = v.z * f; + + return result; +} + // v / f inline Vector operator/(Vector v, float f) {