File size: 796 Bytes
43203b4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
;;; vertex-iterator
(u:defclass* vertex-iterator (containers::forward-iterator)
())
(defmethod initialize-instance :after ((object vertex-iterator) &key)
(reset object))
(defmethod reset ((iterator vertex-iterator))
(let ((vertex (containers::initial-container iterator)))
(setf (slot-value iterator 'containers::iterating-container)
(make-iterator (edges vertex)
:transform (lambda (e) (other-vertex e vertex)))))
iterator)
(defmethod containers::base-class-for-iteratee ((container basic-vertex))
'vertex-iterator)
(defmethod containers::base-class-for-iteratee ((container basic-vertex))
(containers::base-class-for-iteratee (vertex-edges container)))
(u:add-parameter->dynamic-class :iterator :children nil )
(collect-elements
|