Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defclass quadtree ()
- ((nw
- :initarg :nw
- :initform nil)
- (ne
- :initarg :ne
- :initform nil)
- (sw
- :initarg :sw
- :initform nil)
- (se
- :initarg :se
- :initform nil)
- (tl
- :initarg :tl
- :initform nil)
- (br
- :initarg :br
- :initform nil)
- (conts
- :initarg :conts
- :initform nil)))
- (defmethod subdivide ((tree quadtree))
- (with-slots (tl br ne nw se sw) tree
- (setf ne
- (make-instance 'quadtree :tl tl :br (mapcar #'* '(1/2 1/2) br)))
- (setf nw
- (make-instance 'quadtree :tl (mapcar #'* '(1/2 05) br) :br (mapcar #'* '(1/2 0) br)))
- (setf se
- (make-instance 'quadtree :tl (mapcar #'* '(0 1/2) br) :br (mapcar #'* '(1/2 1) br)))
- (setf sw
- (make-instance 'quadtree :tl (mapcar #'* '(1/2 1/2) br) :br br))))
- (defmethod subdivide-n ((tree quadtree) times)
- (unless (= times 0)
- (subdivide tree)
- (with-slots (ne nw se sw) tree
- (subdivide-n ne (- times 1))
- (subdivide-n nw (- times 1))\
- (subdivide-n se (- times 1))
- (subdivide-n sw (- times 1)))))
Add Comment
Please, Sign In to add comment