]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/MeshManagerModel.cpp
#3495 Extrude normals conflict
[creaVtk.git] / lib / creaVtk / MeshManagerModel.cpp
index bcf8c1acefe9db68e67a4f933559702cddff9b70..cf0b3dd2384da5f2e7b1b01847a5fbcc3a840e4e 100644 (file)
@@ -37,17 +37,54 @@ MeshManagerModel::~MeshManagerModel()
 {
 }
 
+void MeshManagerModel::ResetMeshTemp_()
+{
+    if (_meshBase!=NULL)
+    {
+        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
+}
+
+void MeshManagerModel::SetMeshMemoryMode(vtkPolyData* mesh)
 {
     _meshBase = mesh;
-    if (_meshTemp!=NULL)
+    RefreshOutputs();
+}
+
+void MeshManagerModel::ResetMeshTemp()
+{
+    ResetMeshTemp_();
+    RefreshOutputs();
+}
+
+void MeshManagerModel::CopySetMeshBase(vtkPolyData* mesh)
+{
+    if (mesh!=NULL)
     {
-        _meshTemp->Delete();
-    } // if
-    _meshTemp = vtkPolyData::New();
-    _meshTemp->DeepCopy(_meshBase);
+      vtkPolyData *newMesh = vtkPolyData::New();
+      newMesh->DeepCopy( mesh );
+      SetMeshBase(newMesh);
+    } // if mesh
 }
 
+
 vtkPolyData*  MeshManagerModel::GetMeshBase()
 {
    return _meshBase;
@@ -57,3 +94,7 @@ vtkPolyData*  MeshManagerModel::GetMeshTemp()
 {
    return _meshTemp;
 }
+
+void MeshManagerModel::RefreshOutputs() // virtula
+{
+}