2 (in-package :tuple-trace
)
5 ((primitives :accessor primitives-of
6 :initform
(make-array 0
7 :element-type
'primitive
11 (defgeneric primitive-of
(scene index
)
12 (:method
((scene scene
) index
)
13 (aref (primitives-of scene
) index
)))
15 (defgeneric add-primitive
(scene primitive
)
16 (:method
((scene scene
) primitive
)
17 (vector-push-extend primitive
(primitives-of scene
))))
19 (defmethod (setf primitive-of
) (primitive (scene scene
) index
)
20 (setf (aref (primitives-of scene
) index
) primitive
))
22 (defun make-scene (&rest primitives
)
24 ((result (make-instance 'scene
)))
26 for primitive in primitives
28 (add-primitive result primitive
))