Changeset 3171

Show
Ignore:
Timestamp:
05/23/08 14:16:47 (6 months ago)
Author:
ksprotte
Message:

node-path does not take the the tree as an arg anymore, only the node
implicitly refers to *quad-tree*

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/projects/bos/test/web/quad-tree.lisp

    r3151 r3171  
    141141 
    142142(test node-path.1 
    143   (let ((tree (make-instance 'quad-node :geo-box *m2-geo-box*))) 
     143  (let ((bos.web::*quad-tree* (make-instance 'quad-node :geo-box *m2-geo-box*))) 
    144144    (for-all ((path (gen-list :elements (gen-integer :min 0 :max 3)))) 
    145       (is (equal path (node-path tree (ensure-node-with-path tree path))))))) 
     145      (is (equal path (node-path (ensure-node-with-path tree path))))))) 
    146146 
    147  
    148  
  • trunk/projects/bos/web/kml-handlers.lisp

    r3135 r3171  
    100100                          (format nil "http://~a/contract-tree-kml" (website-host)) 
    101101                          (let* ((node (find-contract-node *contract-tree* contract)) 
    102                                  (path (node-path *contract-tree* node)) 
     102                                 (path (node-path node)) 
    103103                                 (contract-id (store-object-id contract))) 
    104104                            (format nil "http://~a/contract-tree-kml?rmcid=~D&rmcpath=~{~D~}" 
  • trunk/projects/bos/web/quad-tree.lisp

    r3170 r3171  
    110110(defmethod extensions ((node null)) nil) 
    111111 
     112;;; node-extension 
    112113(defclass node-extension () 
    113114  ((base-node :reader base-node :accessor %base-node :initform nil) 
     
    255256    nil)) 
    256257 
    257 (defun node-path (tree node) 
     258;;; *quad-tree* 
     259(defvar *quad-tree*) 
     260 
     261(defun make-quad-tree () 
     262  (setq *quad-tree* (make-instance 'quad-node :geo-box *m2-geo-box*))) 
     263 
     264(register-store-transient-init-function 'make-quad-tree) 
     265 
     266(defmethod node-path (node) 
    258267  (let (prev-n path) 
    259268    (map-nodes (lambda (n) 
     
    263272                   (return-from node-path (nreverse path))) 
    264273                 (setq prev-n n)) 
    265                tree 
     274               *quad-tree* 
    266275               :prune-test (lambda (n) (not (geo-box-intersect-p (geo-box n) (geo-box node))))))) 
    267276 
    268 ;;; *quad-tree* 
    269 (defvar *quad-tree*) 
    270  
    271 (defun make-quad-tree () 
    272   (setq *quad-tree* (make-instance 'quad-node :geo-box *m2-geo-box*))) 
    273  
    274 (register-store-transient-init-function 'make-quad-tree) 
    275  
     277(defpersistent-class persistent-node-extension (node-extension) 
     278  ((base-node :transient t) 
     279   (path :reader node-path))) 
     280