diff options
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 28 |
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 |
