From 1ba98f4368d8c6402a5bb1eebbad3190325c877b Mon Sep 17 00:00:00 2001
From: hamidb80
Date: Sun, 28 Jan 2024 09:37:13 +0330
Subject: [PATCH 1/3] add negate operator. '-' prefix e.g. -v
---
prettyvec.nimble | 2 +-
src/prettyvec/vec2/vec2_math.nim | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/prettyvec.nimble b/prettyvec.nimble
index fe7d8cf..7c4b227 100644
--- a/prettyvec.nimble
+++ b/prettyvec.nimble
@@ -1,7 +1,7 @@
[Package]
name = "prettyvec"
author = "prettybauble"
-version = "1.0.0"
+version = "1.0.1"
description = "Small library for working with vectors"
license = "MIT"
srcDir = "src"
diff --git a/src/prettyvec/vec2/vec2_math.nim b/src/prettyvec/vec2/vec2_math.nim
index 52ba0b0..2acc99b 100644
--- a/src/prettyvec/vec2/vec2_math.nim
+++ b/src/prettyvec/vec2/vec2_math.nim
@@ -26,6 +26,10 @@ func `*`*(a, b: Vec2Obj): Vec2Obj =
vec2(a.x * b.x, a.y * b.y)
+func `-`*(a: Vec2Obj): Vec2Obj =
+ ## negates the vector
+ vec2(-a.x, -a.y)
+
func `-`*(a: Vec2Obj, b: float): Vec2Obj =
vec2(a.x - b, a.y - b)
From 594d82cf2074f7602a167b4bf731a90adcbca75c Mon Sep 17 00:00:00 2001
From: hamidb80
Date: Sun, 28 Jan 2024 09:39:00 +0330
Subject: [PATCH 2/3] add negate operator for vec3
---
src/prettyvec/vec2/vec2_math.nim | 2 +-
src/prettyvec/vec3/vec3_math.nim | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/prettyvec/vec2/vec2_math.nim b/src/prettyvec/vec2/vec2_math.nim
index 2acc99b..c2779f3 100644
--- a/src/prettyvec/vec2/vec2_math.nim
+++ b/src/prettyvec/vec2/vec2_math.nim
@@ -27,7 +27,7 @@ func `*`*(a, b: Vec2Obj): Vec2Obj =
func `-`*(a: Vec2Obj): Vec2Obj =
- ## negates the vector
+ ## Negates the vector
vec2(-a.x, -a.y)
func `-`*(a: Vec2Obj, b: float): Vec2Obj =
diff --git a/src/prettyvec/vec3/vec3_math.nim b/src/prettyvec/vec3/vec3_math.nim
index ee4dc0a..62a60c4 100644
--- a/src/prettyvec/vec3/vec3_math.nim
+++ b/src/prettyvec/vec3/vec3_math.nim
@@ -26,6 +26,10 @@ func `*`*(a, b: Vec3Obj): Vec3Obj =
vec3(a.x * b.x, a.y * b.y, a.z * b.z)
+func `-`*(a: Vec3Obj): Vec3Obj =
+ ## Negates the vector
+ vec3(-a.x, -a.y, -a.z)
+
func `-`*(a: Vec3Obj, b: float): Vec3Obj =
vec3(a.x - b, a.y - b, a.z - b)
From dd28a09832a115ce92e5fdb429c3380e9c3bbea0 Mon Sep 17 00:00:00 2001
From: hamidb80
Date: Sun, 28 Jan 2024 09:42:22 +0330
Subject: [PATCH 3/3] add tests for negate operator
---
tests/test1.nim | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/test1.nim b/tests/test1.nim
index c4581ac..3c5fac9 100644
--- a/tests/test1.nim
+++ b/tests/test1.nim
@@ -17,6 +17,8 @@ suite "Vec2":
assert vec2(1) - 5 == vec2(-4)
assert vec2(1) / 5 == vec2(0.2)
+ assert -vec2(1, -2) == vec2(-1, 2)
+
test "basic math":
assert sqrt(vec2(4)) == vec2(2)
assert pow(vec2(2), 3) == vec2(8, 8)
@@ -42,6 +44,8 @@ suite "Vec3":
assert vec3(1) - 5 == vec3(-4)
assert vec3(1) / 5 == vec3(0.2)
+ assert -vec3(1, -2, 3) == vec3(-1, 2, -3)
+
test "basic math":
assert sqrt(vec3(4)) == vec3(2)
assert pow(vec3(4), 3) == vec3(64)