diff options
Diffstat (limited to 'apps/raytracing/ray.mu')
-rw-r--r-- | apps/raytracing/ray.mu | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/raytracing/ray.mu b/apps/raytracing/ray.mu index ca2cb475..33d1a9fe 100644 --- a/apps/raytracing/ray.mu +++ b/apps/raytracing/ray.mu @@ -3,6 +3,17 @@ type ray { dir: vec3 } +# A little different from the constructor at https://raytracing.github.io/books/RayTracingInOneWeekend.html +# We immediately normalize the direction vector so we don't have to keep doing +# so. +fn initialize-ray _self: (addr ray), o: (addr vec3), d: (addr vec3) { + var self/esi: (addr ray) <- copy _self + var dest/eax: (addr vec3) <- get self, orig + copy-object o, dest + dest <- get self, dir + vec3-unit d, dest +} + fn ray-at _self: (addr ray), t: float, out: (addr vec3) { var self/esi: (addr ray) <- copy _self var src/eax: (addr vec3) <- get self, dir |