+ std::vector<std::shared_ptr<MeshModel>> _meshes;
+ int currentMesh;
+ int meshId;
+ int lastModified;
+ bool memoryMode;
+ std::vector<double> referencePoint;
+ std::vector<double> referenceNormal;
+
+ class ManagerState{
+ public:
+ ManagerState(std::vector<std::shared_ptr<MeshModel>> meshesToSave, int meshId, int modifiedId);
+ ManagerState(std::vector<std::shared_ptr<MeshModel>> meshesToSave, int meshId, int modifiedId, std::vector<double> refPoint, std::vector<double> refNormal);
+ ~ManagerState();
+ std::vector<std::shared_ptr<MeshModel>>& GetMeshes();
+ int GetMeshId();
+ int GetModifiedPos();
+ std::vector<double>& GetReferencePoint();
+
+ std::vector<std::shared_ptr<MeshModel>> savedMeshes;
+ int savedModifiedPos;
+ int savedId;
+ std::vector<double> referencePoint;
+ std::vector<double> referenceNormal;
+ };
+
+ void Save();
+ void RestoreState(ManagerState* state);
+ void RestoreStateMemoryMode(ManagerState* state);
+
+ HistoryHandler<ManagerState> *history;
+
+