X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FcreaVtk%2FMeshManagerModel.cpp;h=84713441479ad9dbe9fcfade3da2982d05596f8d;hb=refs%2Fheads%2Fvtk9itk5wx3-macos;hp=ddf25583551f299a25eeff842c0151f02dacce49;hpb=0105528a5e3a8a9bb4f1e7b313e6a4e437ddb5e6;p=creaVtk.git diff --git a/lib/creaVtk/MeshManagerModel.cpp b/lib/creaVtk/MeshManagerModel.cpp index ddf2558..8471344 100644 --- a/lib/creaVtk/MeshManagerModel.cpp +++ b/lib/creaVtk/MeshManagerModel.cpp @@ -200,7 +200,7 @@ MeshModel::MeshModel(vtkPolyData* mesh, int id) { if(mesh != NULL) { - _meshBase = vtkPolyData::New();//mesh; + _meshBase = vtkPolyData::New(); _meshBase->DeepCopy(mesh); _meshTemp = vtkPolyData::New(); _meshTemp->DeepCopy(_meshBase); @@ -329,6 +329,8 @@ MeshManagerModel::MeshManagerModel() history = new HistoryHandler(15); lastModified = 0; memoryMode = false; + referencePoint = {0, 0, 0}; + referenceNormal = {0, 0, 1}; } MeshManagerModel::~MeshManagerModel() @@ -356,6 +358,26 @@ void MeshManagerModel::ResetHistory() history->CleanHistory(); } +void MeshManagerModel::SetReferencePoint(std::vector point) +{ + referencePoint = point; +} + +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(); @@ -724,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)); + 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"); @@ -754,6 +776,8 @@ void MeshManagerModel::RestoreStateMemoryMode(ManagerState* state){ _meshes.at(0)->GetMeshBase()->SetPoints(statePoints); _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"); } @@ -769,6 +793,15 @@ 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() { savedMeshes.clear(); @@ -788,3 +821,7 @@ int MeshManagerModel::ManagerState::GetModifiedPos() return savedModifiedPos; } +std::vector& MeshManagerModel::ManagerState::GetReferencePoint() +{ + return referencePoint; +}