summaryrefslogtreecommitdiff
path: root/lib/common.odin
diff options
context:
space:
mode:
authorJoel Stålnacke <joel@saker.fi>2026-03-23 19:50:18 +0200
committerJoel Stålnacke <joel@saker.fi>2026-03-23 19:50:18 +0200
commit3a1f9fe6800ef5fe7bbf1c0a5976720383ba84fe (patch)
treef1218eb4085a654f6bb70671b41b4a74e646c052 /lib/common.odin
parent3870982f640260822bf605e693782ce9f5d79cf6 (diff)
Rewrite native code in Odin and use ECSodin
Diffstat (limited to 'lib/common.odin')
-rw-r--r--lib/common.odin24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/common.odin b/lib/common.odin
new file mode 100644
index 0000000..3c6679f
--- /dev/null
+++ b/lib/common.odin
@@ -0,0 +1,24 @@
+package djup
+
+import "core:math"
+
+vec2 :: [2]f32
+
+vec2_dot :: proc(a, b: vec2) -> vec2 {
+ return vec2{a.x * b.x, a.y * b.y}
+}
+
+vec2_length :: proc(v: vec2) -> f32 {
+ if v == (vec2{0, 0}) {
+ return 0
+ }
+ return math.sqrt(math.pow(v.x, 2) + math.pow(v.y, 2))
+}
+
+vec2_normal :: proc(v: vec2) -> vec2 {
+ len := vec2_length(v)
+ if len == 0 {
+ return vec2{0, 0}
+ }
+ return v * (1 / len)
+}