aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.zig28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig
index 6b67d23..7373cb6 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,5 +1,33 @@
const std = @import("std");
+const Vec3f = @Vector(3, f64);
+const Point3 = Vec3f;
+const Color = Vec3f;
+
+fn vecNorm(v: Vec3f) f64 {
+ return @sqrt(vecNormSquared(v));
+}
+
+fn vecNormSquared(v: Vec3f) f64 {
+ return v[0] * v[0] + v[1] * v[1] + v[2] * v[2];
+}
+
+fn vecDot(u: Vec3f, v: Vec3f) f64 {
+ return u[0] * v[0] + u[1] * v[1] + u[2] * v[2];
+}
+
+fn vecCross(u: Vec3f, v: Vec3f) Vec3f {
+ return Vec3f(
+ u[1] * v[2] - u[2] * v[1],
+ u[2] * v[0] - u[0] * v[2],
+ u[0] * v[1] - u[1] * v[0],
+ );
+}
+
+fn vecNormalized(v: Vec3f) Vec3f {
+ return v / vecNorm(v);
+}
+
pub fn main() !void {
// Image