MOI building objects history as GeoGebra

 From:  Michael Gibson
3824.4 In reply to 3824.3 
Hi qibentie, yes I do want to make a deeper history function in the future.

MoI's existing history system actually already does make use of things like edge and object IDs to track inputs into commands and to replay them.

The difficulty is when the original input object is not available in the model anymore because it was deleted or replaced in a command, for example when you do a boolean or a fillet the original objects are removed and replaced with a new version that has been altered. In order to replay things, the original objects need to be available to the history update mechanism.

The difficulty is that storing all the previous versions of objects in some kind of internal hidden list of stuff will involve storing a potentially very large amount of information, so it needs to be done quite carefully to be efficient. So because of this it makes it a difficult and sensitive area of work so it is not easy to know when exactly it will happen.

Some of the pieces that are required to have it may come in some kinds of stages, like a persistent undo storage may be the first step, since that can be quite useful on its own and could also provide the data storage of previous old object versions that could then be accessed by history replaying.

Then in addition to requiring some sensitive work involving large amounts of data, it will also need quite a bit of UI for the history browser that would let you view the sequence of commands that was applied and make changes. Anything involving a major amount of new UI tends to be very time consuming to design and develop. So again that's another factor that makes it difficult to know when it would all be actually functioning.

But at any rate, I do have a lot of ideas on improving this area! :)

- Michael