aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main.zig
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2022-11-27 11:07:26 +0900
committernsfisis <nsfisis@gmail.com>2022-11-27 11:07:26 +0900
commit2deccc0a9ba63d19a32b636b3b81eb9be5ef019c (patch)
treedec86331310cea6c6637b9cfbed6cb7dbe377c76 /src/main.zig
parentdd6f4590d7d8ff8d2074ee60b3bd51739633628e (diff)
downloadRayTracingInOneWeekend.zig-2deccc0a9ba63d19a32b636b3b81eb9be5ef019c.tar.gz
RayTracingInOneWeekend.zig-2deccc0a9ba63d19a32b636b3b81eb9be5ef019c.tar.zst
RayTracingInOneWeekend.zig-2deccc0a9ba63d19a32b636b3b81eb9be5ef019c.zip
3.2
Diffstat (limited to 'src/main.zig')
-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