X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FMeshManagerModel.cpp;h=84713441479ad9dbe9fcfade3da2982d05596f8d;hb=refs%2Fheads%2Fvtk9itk5wx3-macos;hp=1f0ce15a3f5a61a7209e86574d9a5428a08b80ff;hpb=6cf1e39c6672a85f56a7341bc0f2107e09de8523;p=creaVtk.git diff --git a/lib/creaVtk/MeshManagerModel.cpp b/lib/creaVtk/MeshManagerModel.cpp index 1f0ce15..8471344 100644 --- a/lib/creaVtk/MeshManagerModel.cpp +++ b/lib/creaVtk/MeshManagerModel.cpp @@ -330,6 +330,7 @@ MeshManagerModel::MeshManagerModel() lastModified = 0; memoryMode = false; referencePoint = {0, 0, 0}; + referenceNormal = {0, 0, 1}; } MeshManagerModel::~MeshManagerModel() @@ -367,6 +368,16 @@ std::vector MeshManagerModel::GetReferencePoint() return referencePoint; } +void MeshManagerModel::SetReferenceNormal(std::vector normal) +{ + referenceNormal = normal; +} + +std::vector MeshManagerModel::GetReferenceNormal() +{ + return referenceNormal; +} + int MeshManagerModel::GetNumberOfMeshes() { return _meshes.size(); @@ -701,7 +712,7 @@ void MeshManagerModel::Undo() if(history->UndoSize() > 0) { if(memoryMode == false){ - RestoreState(history->Undo(new ManagerState(_meshes, meshId, lastModified, referencePoint))); + RestoreState(history->Undo(new ManagerState(_meshes, meshId, lastModified))); RefreshOutputs(true); } else if(history->UndoSize() > 1){ @@ -715,7 +726,7 @@ void MeshManagerModel::Redo() if(history->RedoSize() > 0) { if(memoryMode == false){ - RestoreState(history->Redo(new ManagerState(_meshes, meshId, lastModified, referencePoint))); + RestoreState(history->Redo(new ManagerState(_meshes, meshId, lastModified))); RefreshOutputs(true); } else{ @@ -726,7 +737,7 @@ void MeshManagerModel::Redo() void MeshManagerModel::Save() { - history->Save(new ManagerState(_meshes, meshId, currentMesh, referencePoint)); + history->Save(new ManagerState(_meshes, meshId, currentMesh)); } void MeshManagerModel::SaveMemoryMode() @@ -735,7 +746,7 @@ void MeshManagerModel::SaveMemoryMode() { std::vector> savedMesh; savedMesh.push_back(std::make_shared(_meshes.at(0).get())); - history->Save(new ManagerState(savedMesh, meshId, 0, referencePoint)); + history->Save(new ManagerState(savedMesh, meshId, 0, referencePoint, referenceNormal)); } else{ printf("PG MeshManagerModel::SaveMemoryMode WARNING Mesh vector has invalid size or memoryMode is not set \n"); @@ -766,6 +777,7 @@ void MeshManagerModel::RestoreStateMemoryMode(ManagerState* state){ _meshes.at(0)->GetMeshBase()->GetPoints()->Modified(); _meshes.at(0)->GetMeshBase()->Modified(); referencePoint = state->GetReferencePoint(); + referenceNormal = state->referenceNormal; }else{ printf("PG MeshManagerModel::RestoreStateMemoryMode WARNING Mesh vector has invalid size or state is NULL\n"); } @@ -774,12 +786,20 @@ void MeshManagerModel::RestoreStateMemoryMode(ManagerState* state){ // //Manager State // -MeshManagerModel::ManagerState::ManagerState(std::vector> meshesToSave, int meshId, int modifiedPos, std::vector refPoint) +MeshManagerModel::ManagerState::ManagerState(std::vector> meshesToSave, int meshId, int modifiedPos) +{ + savedMeshes = meshesToSave; + savedId = meshId; + savedModifiedPos = modifiedPos; +} + +MeshManagerModel::ManagerState::ManagerState(std::vector> meshesToSave, int meshId, int modifiedPos, std::vector refPoint, std::vector refNormal) { savedMeshes = meshesToSave; savedId = meshId; savedModifiedPos = modifiedPos; referencePoint = refPoint; + referenceNormal = refNormal; } MeshManagerModel::ManagerState::~ManagerState()