]> Creatis software - creaVtk.git/commitdiff
MeshManager
authorEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 9 Sep 2022 14:07:16 +0000 (16:07 +0200)
committerEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 9 Sep 2022 14:07:16 +0000 (16:07 +0200)
bbtk_creaVtk_PKG/src/bbcreaVtkMeshDeformation.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkMeshManager_tool.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkMeshManager_tool.h
lib/creaVtk/MeshManagerModel.cpp
lib/creaVtk/MeshManagerModel.h

index cddffce77d323569eb3dca165ccfe964adc6124c..830d8ad6c33539f1f1901cec59ba9f5ad03eee83 100644 (file)
@@ -30,13 +30,13 @@ void MeshDeformation::Process()
 
     std::vector<double> lstCenter = bbGetInputCenter();
 
-    double s = bbGetInputS();
-    bool ok=false;
+    double  s   = bbGetInputS();
+    bool    ok  = false;
     if (bbGetInputTypeIn()==0) // direction
     {
         if (bbGetInputDirection().size()==3)
         {
-                ok = !( (bbGetInputDirection()[0]==0) && (bbGetInputDirection()[1]==0) && (bbGetInputDirection()[2]==0) );
+            ok = !( (bbGetInputDirection()[0]==0) && (bbGetInputDirection()[1]==0) && (bbGetInputDirection()[2]==0) );
         }
     } // if TypeIn 0
     
index c087d1b1908cb7c749e6d94b8d2ce7a759f9f9db..9182458915e0f567152bb1aadfbe823672f53148 100644 (file)
@@ -55,9 +55,17 @@ void MeshManager_tool::Process()
                 bbGetInputMeshManagerModel()->SetMeshMemoryMode( bbGetInputMesh() );
         } // if Tool 35 Set memory mode
 
-        if (bbGetInputTool()==40) // Reset
+        if (bbGetInputTool()==32)  // Copy and Set
         {
-            printf("EED Warning!   MeshManager_tool Reset   Not implemented.\n");
+                bbGetInputMeshManagerModel()->CopySetMeshBase( bbGetInputMesh() );
+        } // if Tool 35 Set memory mode
+
+        
+        if (bbGetInputTool()==40) // ResetMeshTemp
+        {
+            printf("EED MeshManager_tool::Process ResetMeshTemp 1\n");
+            bbGetInputMeshManagerModel()->ResetMeshTemp();
+            printf("EED MeshManager_tool::Process ResetMeshTemp 2\n");
         } // if Tool 40 Reset
         
     } else {
index b861c85bf6d810f0ddaae17617290d2f6ebfca7c..3cf9b798b46dc31b3dc3d2572a44204a7a465461 100644 (file)
@@ -38,7 +38,7 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(MeshManager_tool,bbtk::AtomicBlackBox);
   BBTK_DESCRIPTION("No Description.");
   BBTK_CATEGORY("empty");
 
-  BBTK_INPUT(MeshManager_tool,Tool,"(default 0) 0:Nothing  10:Undo  20:ReDo  30:Set  35:Set memory mode  40:Reset",int,"");
+  BBTK_INPUT(MeshManager_tool,Tool,"(default 0) 0:Nothing  10:Undo  20:ReDo  30:Set  32:Copy and Set  35:Set memory mode  40:ResetMeshTemp",int,"");
   BBTK_INPUT(MeshManager_tool,Mesh,"Mesh",vtkPolyData*,"");
   BBTK_INPUT(MeshManager_tool,MeshManagerModel,"Mesh Manager Model",MeshManagerModel*,"");
 
index f87f714e34d69de8cfe8893f507999e182612c2c..5c214513a31053d8e3328cb6560c0f6a99e65ea6 100644 (file)
@@ -37,17 +37,31 @@ MeshManagerModel::~MeshManagerModel()
 {
 }
 
-void MeshManagerModel::SetMeshBase(vtkPolyData* mesh)
+void MeshManagerModel::ResetMeshTemp_()
 {
-    if (mesh!=NULL)
+    printf("EED MeshManagerModel::Process ResetMeshTemp_ Start\n");
+    if (_meshBase!=NULL)
     {
-        _meshBase = mesh;
         if (_meshTemp!=NULL)
         {
             _meshTemp->Delete();
         } // if
         _meshTemp = vtkPolyData::New();
+        printf("EED MeshManagerModel::Process ResetMeshTemp_ 1\n");
         _meshTemp->DeepCopy(_meshBase);
+        printf("EED MeshManagerModel::Process ResetMeshTemp_ 2\n");
+    } else {
+        _meshTemp=NULL;
+    }
+    printf("EED MeshManagerModel::Process ResetMeshTemp_ End\n");
+}
+
+void MeshManagerModel::SetMeshBase(vtkPolyData* mesh)
+{
+    if (mesh!=NULL)
+    {
+        _meshBase = mesh;
+        ResetMeshTemp_();
         RefreshOutputs();
     } // if mesh
 }
@@ -58,6 +72,26 @@ void MeshManagerModel::SetMeshMemoryMode(vtkPolyData* mesh)
     RefreshOutputs();
 }
 
+void MeshManagerModel::ResetMeshTemp()
+{
+    printf("EED MeshManagerModel::Process ResetMeshTemp 1\n");
+    ResetMeshTemp_();
+    printf("EED MeshManagerModel::Process ResetMeshTemp 2\n");
+    RefreshOutputs();
+    printf("EED MeshManagerModel::Process ResetMeshTemp 3\n");
+}
+
+void MeshManagerModel::CopySetMeshBase(vtkPolyData* mesh)
+{
+    if (mesh!=NULL)
+    {
+      vtkPolyData *newMesh = vtkPolyData::New();
+      newMesh->DeepCopy( mesh );
+      SetMeshBase(newMesh);
+    } // if mesh
+}
+
+
 vtkPolyData*  MeshManagerModel::GetMeshBase()
 {
    return _meshBase;
index 4373ff1614705eb3d7f7749e29269213c2627b8e..b2f5dc9051b13963e1383c8cf511ce6f54140d12 100644 (file)
@@ -47,6 +47,9 @@ public :
 
     void SetMeshBase(vtkPolyData* mesh);
     void SetMeshMemoryMode(vtkPolyData* mesh);
+    void CopySetMeshBase(vtkPolyData* mesh);
+    void ResetMeshTemp();
+    void ResetMeshTemp_();
     vtkPolyData* GetMeshBase();
     vtkPolyData* GetMeshTemp();
     virtual void RefreshOutputs();