Fixing system file
[cl-tuples.git] / ray.lisp
blob45f13374d57073c4c601fbdcd9618845cd54e523
2 (defmacro make-ray (&key origin direction)
3 (let ((origin-x (gensym "ORX"))
4 (origin-y (gensym "ORY"))
5 (origin-z (gensym "ORX"))
6 (direction-x (gensym "DIRX"))
7 (direction-y (gensym "DIRY"))
8 (direction-z (gensym "DIRZ")))
9 `(multiple-value-bind (,origin-x ,origin-y ,origin-z) ,origin
10 (multiple-value-bind (,direction-x ,direction-y ,direction-z) ,direction
11 (values ,origin-x ,origin-y ,origin-z ,direction-x ,direction-y ,direction-z)))))
13 (defmacro ray-origin (&key ray)
14 `(multiple-value-bind (origin-x origin-y origin-z) ,ray
15 (values origin-x origin-y origin-z)))
17 (defmacro ray-direction (&key ray)
18 `(multiple-value-bind (origin-x origin-y origin-z direction-x direction-y direction-z)
19 ,ray
20 (declare (ignore origin-x origin-y origin-z))
21 (values direction-x direction-y direction-z)))