One way to accomplish this may be to rely on d3's coordinates a bit more. Right now I'm storing my coordinates and redrawing the whole thing each time. But d3 does have zoom and pan support, so when I try to redraw the image after a zoom/pan action, it may just draw the exact same thing again. Instead, I should ask d3 to tell me the coordinates of all my objects and just store those. This may result in a major overhaul of the drawing system
One way to accomplish this may be to rely on d3's coordinates a bit more. Right now I'm storing my coordinates and redrawing the whole thing each time. But d3 does have zoom and pan support, so when I try to redraw the image after a zoom/pan action, it may just draw the exact same thing again. Instead, I should ask d3 to tell me the coordinates of all my objects and just store those. This may result in a major overhaul of the drawing system