Sounds great.
From what I imagined your idea to be, I envisioned some kind of palette/window with a tree like structure of nodes:

- Tree.gif (474 Bytes) Viewed 1191 times
Each node represents the canvas at one point (or one specific evolution) in time.
In fact it is a bit like the TRUNK & BRANCHES of source code version control etc...
The main trunk being the present drawing, and the other branches being points where you have reverted (undo'ed) away from.
So in theory you could keep going back and forward between several branches by clicking on the nodes.
To implement this, my first thought was that it would be nice to save all this in the Session PDF.
But the process of writing to PDF and importing everything back in as before, is hacky and not so simple (see
AlcUtil.getPDFShapes to see what I mean).
Right now individual shapes are stored in the
AlcShape class, but there is no class designed to hold a group of them.
So making such a class to store a 'drawing' and some undo-like keys to decide when to store them. Or this could be tied to the Session menu for simplicity?
The problem will be storing all this info... could be quite memory consuming?
Might need some way to filter out duplicate shapes from each drawing. Eg the first shape drawn will most likely be in every single drawing that is produced from there on in...
I guess the PDF file approach would have been quite good in this respect, as it is stored in a flat file.
What do you think?