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)