From ec0a1cd133aa605bbe549dd4b3d612b5ee3daf5f Mon Sep 17 00:00:00 2001 From: Ekali Date: Tue, 23 Sep 2025 21:36:32 +0200 Subject: [PATCH 1/2] feat(magnitude): Add __len metatable field to Vector to get the magnitude of the vector. --- Classes/Vector.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Classes/Vector.lua b/Classes/Vector.lua index 0970db1..7e8caae 100644 --- a/Classes/Vector.lua +++ b/Classes/Vector.lua @@ -68,6 +68,10 @@ function Vector:__div(other) return Vector(self.X / other.X, self.Y / other.Y, self.Z / other.Z) end +function Vector:__len() + return math.sqrt(self.X^2 + self.Y^2 + self.Z^2) +end + function Vector:__pow(other) return Vector(self.Y * other.Z - self.Z * other.Y, self.Z * other.X - self.X * other.Z, self.X * other.Y - self.Y * other.X) end From a15d0e311576632cd93a96f4f39d10256f435312 Mon Sep 17 00:00:00 2001 From: Ekali Date: Tue, 23 Sep 2025 21:37:56 +0200 Subject: [PATCH 2/2] feat(magnitude): Add shortcut to get the magnitude of vec2d --- Classes/Vector2D.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Classes/Vector2D.lua b/Classes/Vector2D.lua index 3a66410..eed2f16 100644 --- a/Classes/Vector2D.lua +++ b/Classes/Vector2D.lua @@ -67,6 +67,10 @@ function Vector2D:__div(other) return Vector2D(self.X / other.X, self.Y / other.Y) end +function Vector2D:__len() + return math.sqrt(self.X^2 + self.Y^2) +end + function Vector2D:__unm() return Vector2D(-self.X, -self.Y) end @@ -77,4 +81,4 @@ end function Vector2D:__tostring() return "Vector2D(X = " .. self.X .. ", Y = " .. self.Y .. ")" -end \ No newline at end of file +end