]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkMeshManager_tool.cxx
3521 CompareImages
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkMeshManager_tool.cxx
index e39e25fd66ef4e531c2a0d259875f32b3b1d3871..af15435ffdf8500aac153a788b7cd89cc5fef748 100644 (file)
@@ -31,12 +31,20 @@ void MeshManager_tool::Process()
     {
         if (bbGetInputTool()==10) // Undo
         {
-            printf("EED Warning!   MeshManager_tool Undo   Not implemented.\n");
+               bbGetInputMeshManagerModel()->Undo();
+               std::vector<double> outData = bbGetInputMeshManagerModel()->GetReferencePoint();
+               std::vector<double> refNormal = bbGetInputMeshManagerModel()->GetReferenceNormal();
+               outData.insert(outData.end(), refNormal.begin(), refNormal.end());
+               bbSetOutputOut(outData);
         } // if Tool 10 Undo
         
         if (bbGetInputTool()==20) // Redo
         {
-            printf("EED Warning!   MeshManager_tool Redo   Not implemented.\n");
+               bbGetInputMeshManagerModel()->Redo();
+               std::vector<double> outData = bbGetInputMeshManagerModel()->GetReferencePoint();
+               std::vector<double> refNormal = bbGetInputMeshManagerModel()->GetReferenceNormal();
+               outData.insert(outData.end(), refNormal.begin(), refNormal.end());
+               bbSetOutputOut(outData);
         } // if Tool 20 Redo
 
         if (bbGetInputTool()==30)  // Set
@@ -54,7 +62,16 @@ void MeshManager_tool::Process()
         {
                 bbGetInputMeshManagerModel()->SetMeshMemoryMode( bbGetInputMesh() );
         } // if Tool 35 Set memory mode
-
+               if(bbGetInputTool() == 37) // Save State Memory Mode
+        {
+               if(bbGetInputDoubleParams().size() == 8){       
+                               std::vector<double> point = {bbGetInputDoubleParams()[0], bbGetInputDoubleParams()[1], bbGetInputDoubleParams()[2]};
+                               bbGetInputMeshManagerModel()->SetReferencePoint(point);
+                               std::vector<double> normVect = {bbGetInputDoubleParams()[3], bbGetInputDoubleParams()[4], bbGetInputDoubleParams()[5]};
+                               bbGetInputMeshManagerModel()->SetReferenceNormal(normVect);
+                       bbGetInputMeshManagerModel()->SaveMemoryMode();
+               }
+        }
         if (bbGetInputTool()==32)  // Copy and Set
         {
                 bbGetInputMeshManagerModel()->CopySetMeshBase( bbGetInputMesh() );
@@ -70,14 +87,7 @@ void MeshManager_tool::Process()
         {
                if(bbGetInputMeshes().size() > 1)
                {
-                       if(bbGetInputMeshManagerModel()->GetNumberOfMeshes() == 1){
-                                       bbGetInputMeshManagerModel()->DeleteAll();
-                       }
-                       if(bbGetInputMeshManagerModel()->GetNumberOfMeshes() > 1)
-                       {
-                               bbGetInputMeshManagerModel()->DeleteCurrentMesh();
-                       }
-                               bbGetInputMeshManagerModel()->InsertMeshesAtCurrent(bbGetInputMeshes());
+                       bbGetInputMeshManagerModel()->ReplaceMesh(bbGetInputMeshes());
                    }
         }
         if(bbGetInputTool() == 60) // Select Mesh by Name
@@ -94,6 +104,7 @@ void MeshManager_tool::Process()
     } else {
         printf("EED Warning! MeshManager_tool : MeshManagerModel not defined. \n");
     }// if MeshManagerModel != NULL
+    
 }
 
 //=====