# Layer Config

- Projection
- Position
- History

Define here the maximum number of old states that can be saved for each layer.

### Undo, Save

Set the maximum number of old states that can be saved in memory, using the Undo and Save mechanisms. Everytime this number is exceeded, the oldest state is discarded forever.

For each layer, GAMGI maintains a list of old states saved automatically when a discontinuous action takes place, that can be recovered with the Undo mechanism.

A discontinuous action occurs when a user presses Ok, clicks over the ruler to rotate, move, scale an object, or in general when a clear boundary can be defined between what existed before and after.

Continuous actions occur when objects are moved, rotated, scaled, directly with the mouse, as parameters are changing almost continuously. If continuous actions were saved with Undo, in a few seconds all Undo levels would be filled up with almost equal states and old Undo states would be removed forever, turning the Undo mechanism much less useful. Moreover, continuous actions would be slow, because GAMGI would be saving things all the time.

The Save mechanism works exactly as the Undo mechanism, except that it is fully controlled by the user, who decides when a layer should be saved, while the Undo mechanism works without any user intervention. With the Save mechanism, users can save any layer exactly when they wish (in particular after any discontinuous action), and control when old states are discarded, after exceeding the number of Save levels.

The maximum number of Undo and Save levels does not affect performance but the memory required to keep old states, for each layer, for each window, can be significant, particularly for Undo, where old states are saved automatically. Therefore the maximum number of levels should be kept to relatively low values.

Although Save and Undo work exactly in the same way and complement each other, they use totally independent resources.
Home