Writing a good Undo System is an art form in itself. The first time I tried was for VRTX. It was an extremely frustrating experience, because I did not think about it from the start. But ever since, I’ve been on a quest to create the perfect Undo system!
The next one I built for a fantastic little tool with a tiny little team at Magic Leap and it was a beauty! It was networked, could handle multiple users and worked on multiple levels - certain things went on a per-user undo/redo stack, other things went on a global undo/redo stack, etc. Lots of fun experimentation to figure all this out.
Unfortunately that tool will never see the light of day and I know for a fact that there’s no one left at Magic Leap who even remembers that they have it. It lives on in my memory…
Anyway. I’m working on a flexible little undo system of my own. It’s quite simple. [EXPLAIN]