More undos?

More undos?

Martin, would it be possible to add more undo steps?

I like to experiment a lot while modelling, and I often do a lot of destructive editing as I search for the best way of making a particular shape. If I don't like the changes I've made, I just undo back to the point before I started experimenting. Unfortunately, in Cheetah3D I usually run out of undo steps before I get there.

Some other modellers I use (such as FormZ) allow unlimited undos, or at least allow the user to set how many undos they'd like.

(While I'm writing, I should add some praise for version 2.5, which I've just tried. The GUI-controlled scripting in particular is going to be very useful! :) )
 
Hi,
it's nice to hear that you like the Javascript stuff. And you are right with the UNDO. I've currently limited the max. UNDO steps to 16 since depending on the operation a single undo can consume quite alot of Ram. Other operations consume just few bytes.
Offering a preferences to set the undo steps would be that best solution of course. I will try to add that in one of the next updates.


By,
Martin
 
Martin said:
I've currently limited the max. UNDO steps to 16 since depending on the operation a single undo can consume quite alot of Ram. Other operations consume just few bytes.
Interesting. I've never had to implement undo in an application because I'm primarily a game programmer, so this makes me curious.... How much is a lot of RAM in this case? A few megabytes? Also, which operations are more expensive?

Offering a preferences to set the undo steps would be that best solution of course. I will try to add that in one of the next updates.
Thanks, that would be great! :)
 
NCarter said:
I'm primarily a game programmer, so this makes me curious.... How much is a lot of RAM in this case? A few megabytes? Also, which operations are more expensive?

Here is a extrem example. You have a mesh with 100.000 polygons. Now you delete 50.000. Undoing that would cost maybe 10 MBytes since also the UVcoords, the polygon and edge selection, etc. have to be recorded.
Recording 100 such UNDO steps eats up quite fast the ram on small machines. The problem is that you always have to assume the worst case.

So if you read "UNLIMITED" undo on some apps that couldn't be true. I never understood why they write that on their web pages.

Recording the change of a parameter on the other side just consumes a few bytes.

By,
Martin
 
Martin said:
Here is a extrem example. You have a mesh with 100.000 polygons. Now you delete 50.000. Undoing that would cost maybe 10 MBytes since also the UVcoords, the polygon and edge selection, etc. have to be recorded.
Recording 100 such UNDO steps eats up quite fast the ram on small machines. The problem is that you always have to assume the worst case.
I see. Thanks for that clarification. It's helpful to have an insight into how the program works. :)

So if you read "UNLIMITED" undo on some apps that couldn't be true. I never understood why they write that on their web pages.
If I recall correctly, FormZ stores its undo buffer on disk. This sounds slow, but in practice it isn't - maybe it keeps recent undos in memory and asynchronously reads and writes older undos as necessary. It can also save the undo buffer into your project file if you want, so that when you later re-open your file, you can still undo to a state prior to when you saved. I don't use this feature, but I imagine it can generate some gargantuan files!
 
Back
Top