(cl:defpackage #:ray/ray (:use #:coalton #:coalton-prelude) (:local-nicknames (#:v #:ray/vec3)) (:export #:Ray #:ray-at)) (cl:in-package #:ray/ray) (cl:declaim (cl:optimize (cl:speed 3) (cl:safety 0) (cl:debug 0))) (coalton-toplevel (define-struct Ray (:origin v:Vec3) (:direction v:Vec3)) (inline) (declare ray-at (v:Vec3 * v:Vec3 * F64 -> v:Vec3)) (define (ray-at origin direction t) (v:vec-add origin (v:vec-mul-scalar direction t))) )