]> Creatis software - creaVtk.git/commitdiff
#3472 MeshDeformation
authorEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 3 Dec 2021 10:23:02 +0000 (11:23 +0100)
committerEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 3 Dec 2021 10:23:02 +0000 (11:23 +0100)
bbtk_creaVtk_PKG/src/bbcreaVtkCutter.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkMeshDeformation.cxx

index 5f0aaa18396f78dd85d6a192149c9530c138a5c4..82651c6971d86dafb2feb110795b039d3f519fbc 100644 (file)
@@ -33,26 +33,27 @@ void Cutter::Process()
   //  See example in:
   //  https://kitware.github.io/vtk-examples/site/Cxx/VisualizationAlgorithms/Cutter/
   
-       vtkCutter       *cutter;
-
-       cutter = vtkCutter::New();
-       cutter->SetInputData( bbGetInputIn() );
-    cutter->SetCutFunction( bbGetInputImplicitFunction() );
-    cutter->Update();
-    bbSetOutputOut( cutter->GetOutput() );
-
-               
+    if (bbGetInputIn()!=NULL)
+    {
+        vtkCutter *cutter;
+        cutter = vtkCutter::New();
+        cutter->SetInputData( bbGetInputIn() );
+        cutter->SetCutFunction( bbGetInputImplicitFunction() );
+        cutter->Update();
+        bbSetOutputOut( cutter->GetOutput() );
+    } else {
+        bbSetOutputOut( NULL );
+    }
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
 //===== 
 void Cutter::bbUserSetDefaultValues()
 {
-
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
 //   bbSetInputIn(NULL);
-  
+    bbSetOutputOut( NULL );
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
@@ -79,7 +80,7 @@ void Cutter::bbUserFinalizeProcessing()
 //    if any
   
 }
-}
-// EO namespace bbcreaVtk
+
+}// EO namespace bbcreaVtk
 
 
index b5b429492f2e29219dc5d60c6ed88299071c978c..3fac0f90d851f8ab9d628e89cea451159796c259 100644 (file)
@@ -28,14 +28,16 @@ void MeshDeformation::Process()
 //    bbSetOutputOut( bbGetInputIn() );
 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
   
+    
     double s = bbGetInputS();
     bool ok=true;
     if (bbGetInputDirection().size()==3)
     {
         ok = !( (bbGetInputDirection()[0]==0) && (bbGetInputDirection()[1]==0) && (bbGetInputDirection()[2]==0) );
     }
-    if ( (bbGetInputIn()!=NULL) && (ok==true))
+    if ( (bbGetInputIn()!=NULL) && (ok==true) && (bbGetInputEdgeId()>=0))
     {
+
         vtkPoints* points=bbGetInputIn()->GetPoints();
         long    i,size=points->GetNumberOfPoints();
         double  p[3];  // point
@@ -67,12 +69,14 @@ void MeshDeformation::Process()
         double displcement_x = 0;
         double displcement_y = 0;
         double displcement_z = 0;
+        
         if (bbGetInputDirection().size()==3)
         {
             displcement_x = bbGetInputDirection()[0];
             displcement_y = bbGetInputDirection()[1];
             displcement_z = bbGetInputDirection()[2];
         }
+        
         size=voiIdPoints.size();
         for (i=0;i<size;i++)
         {