]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/MeshManagerModel.cpp
#3495 Extrude normals conflict
[creaVtk.git] / lib / creaVtk / MeshManagerModel.cpp
index f87f714e34d69de8cfe8893f507999e182612c2c..cf0b3dd2384da5f2e7b1b01847a5fbcc3a840e4e 100644 (file)
@@ -37,17 +37,27 @@ MeshManagerModel::~MeshManagerModel()
 {
 }
 
-void MeshManagerModel::SetMeshBase(vtkPolyData* mesh)
+void MeshManagerModel::ResetMeshTemp_()
 {
-    if (mesh!=NULL)
+    if (_meshBase!=NULL)
     {
-        _meshBase = mesh;
         if (_meshTemp!=NULL)
         {
             _meshTemp->Delete();
         } // if
         _meshTemp = vtkPolyData::New();
         _meshTemp->DeepCopy(_meshBase);
+    } else {
+        _meshTemp=NULL;
+    }
+}
+
+void MeshManagerModel::SetMeshBase(vtkPolyData* mesh)
+{
+    if (mesh!=NULL)
+    {
+        _meshBase = mesh;
+        ResetMeshTemp_();
         RefreshOutputs();
     } // if mesh
 }
@@ -58,6 +68,23 @@ void MeshManagerModel::SetMeshMemoryMode(vtkPolyData* mesh)
     RefreshOutputs();
 }
 
+void MeshManagerModel::ResetMeshTemp()
+{
+    ResetMeshTemp_();
+    RefreshOutputs();
+}
+
+void MeshManagerModel::CopySetMeshBase(vtkPolyData* mesh)
+{
+    if (mesh!=NULL)
+    {
+      vtkPolyData *newMesh = vtkPolyData::New();
+      newMesh->DeepCopy( mesh );
+      SetMeshBase(newMesh);
+    } // if mesh
+}
+
+
 vtkPolyData*  MeshManagerModel::GetMeshBase()
 {
    return _meshBase;