OK, nice answer -- thanks (esp. since it is a side issue). Yes, a
minor memory hit for speed over many iterations makes perfect sense,
esp. for visualisations where this is an "optional add-on" to the core
model.
Apologies if the original post came across as a "coding lesson". Wasn't
meant to be: the details just kind of reflected my thought processes in
thinking about the code alternatives (which were slightly more subtle
than I'd expected...). I'd be the first to admit that I sometimes get
hung up on formal OO design principles, instead of the run-time reality :-)