diff --git a/quad/quad/pict.rkt b/quad/quad/pict.rkt index 8de4059b..10c57d3f 100644 --- a/quad/quad/pict.rkt +++ b/quad/quad/pict.rkt @@ -25,3 +25,8 @@ (map (λ (qe) (loop qe (add1 idx))) (quad-elems q)))) (* scaling-factor (+ (- xmax xmin) (* stroke-width 2) (* margin 2))) (* scaling-factor (+ (- ymax ymin) (* stroke-width 2) (* margin 2))))) + +(module+ main + (define q1 (make-quad #:size '(25 25))) + (define q2 (make-quad #:size '(15 15))) + (quad->pict (position (attach-to q1 'e q2 'w)))) \ No newline at end of file diff --git a/quad/quad/position.rkt b/quad/quad/position.rkt index 01696a26..a52a9d8e 100644 --- a/quad/quad/position.rkt +++ b/quad/quad/position.rkt @@ -10,7 +10,7 @@ (define (sum-base qs which) (for/sum ([q (in-list qs)]) - (which (size q)))) + (which (size q)))) (define (sum-y qs) (sum-base qs pt-y)) (define (sum-x qs) (sum-base qs pt-x)) @@ -143,7 +143,9 @@ (define (attach-to from-q from-pt to-q to-pt) (quad-update! to-q [from-parent from-pt] - [to to-pt])) + [to to-pt]) + (quad-update! from-q + [elems (cons to-q (quad-elems from-q))])) (module+ test (require rackunit)