]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkImageThresholdConnectivity.cxx
#3503 Clean BooleanOperationPolyDataFilter
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkImageThresholdConnectivity.cxx
index a7ddb49608e71098de98f90c15ea79e3b94cbb09..a368cc5cc94f1f99f78329f7684b4ad52b104377 100644 (file)
@@ -46,7 +46,8 @@ void ImageThresholdConnectivity::Process()
     
     if ( (bbGetInputIn()!=NULL) && (lstX.size()>0) && (lstX.size()==lstY.size()) && (lstX.size()==lstZ.size()) )
     {
-        vtkImageThresholdConnectivity *filter = vtkImageThresholdConnectivity::New();
+               if (filter!=NULL) { filter->Delete(); }
+        filter = vtkImageThresholdConnectivity::New();
         double spc[3];
         bbGetInputIn()->GetSpacing(spc);
         int border  = bbGetInputBorder();
@@ -74,7 +75,18 @@ void ImageThresholdConnectivity::Process()
         } // for i
         filter->SetSeedPoints( points );
         filter->SetInputData( bbGetInputIn() );
-        filter->ThresholdBetween(10, 100);
+        if (bbGetInputThreshold().size()==2)
+        {
+                       if ( bbGetInputThreshold()[0] < bbGetInputThreshold()[1] )            
+                       {
+                               filter->ThresholdBetween( bbGetInputThreshold()[0] , bbGetInputThreshold()[1] );
+                       } else {
+                               filter->ThresholdBetween( bbGetInputThreshold()[1] , bbGetInputThreshold()[0] );
+                       }// if Thershold min max
+        } else {
+            filter->ThresholdBetween( 0, 100 );
+        }// if Thershold size
+        
     //    filter->SetNeighborhoodRadius (4, 4, 4 );
         filter->SetInValue(255);
         filter->SetOutValue(0);
@@ -85,7 +97,9 @@ void ImageThresholdConnectivity::Process()
         filter->SetSliceRangeZ(minZ-border,maxZ+border);
         filter->Update();
         bbSetOutputOut( filter->GetOutput() );
-    } // if lst
+    } else {
+        bbSetOutputOut( NULL );
+    }// if lst
 }
 //===== 
 // 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)
@@ -94,13 +108,13 @@ void ImageThresholdConnectivity::bbUserSetDefaultValues()
 {
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
+       filter=NULL;
     bbSetInputIn(NULL);
     bbSetInputBorder(10);
     std::vector<double> maskValue;
     maskValue.push_back(0);
     maskValue.push_back(255);
     bbSetInputMaskValue(maskValue);
-
 }
 
 //=====