 (def displacement-factor 1)
 
 (def max-radius 32)
+(def link-width 3)
+(def selected-link-width 5)
 (def label-font "Verdana")
 (def label-font-size 24)
 (def hitbox-size 96)

          (.remove))
      (-> node-selection
          (.style "fill"
                  #(if (= % selected-node) selected-node-color node-color))
          maybe-transition
          (.attr "transform"
                 (fn [node]

(defn zoom-and-select-on-tap! [manager current-state animation-observable]
  (let [taps (tap-observable manager)
        partitions (-> taps
                       (suppress-while-animating animation-observable)
                       (.map #(closest-node @current-state %))
                       (.partition #(< (:distance %) (/ hitbox-size 2))))
        node-taps (aget partitions 0)
        space-taps (.map (aget partitions 1) #(:pos %))]
    (.subscribe node-taps
                (fn [{:keys [node]}]
                  (select-and-zoom-to-node! current-state node)))
    (.subscribe space-taps
                #(if (= (:projection @current-state) :zoom-out)
                   (zoom-in-to-pos! current-state
                                    (zoom-out->world-pos @current-state %))))))

;; Exported function to do magic

