]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkImageContinuousErode3D.cxx
#3487 BUG spacing in PolyDataToImage box
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkImageContinuousErode3D.cxx
index debccc0b0f0cbe37c6732d0567e4430eee67ecd4..a123ae6f13e646397f6d28839d8568ba565bf06e 100644 (file)
@@ -13,8 +13,13 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ImageContinuousErode3D,bbtk::AtomicBlackBox);
 
 void ImageContinuousErode3D::Process()
 {
+    if (bbGetInputImage()!=NULL)
+    {
                vtkImageData* result = erodeFilterRecursive(bbGetInputImage(), bbGetInputRepetitions(), bbGetInputX(),bbGetInputY(),bbGetInputZ());
                bbSetOutputOut(result);
+    } else {
+        bbSetOutputOut(NULL);
+    } // if Image
 }
 
 vtkImageData* ImageContinuousErode3D::erodeFilterRecursive(vtkImageData* image, int repetitions, double x, double y, double z)
@@ -27,15 +32,13 @@ vtkImageData* ImageContinuousErode3D::erodeFilterRecursive(vtkImageData* image,
     erodeFilter->SetInputData(image);
 #endif
     erodeFilter->SetKernelSize(x, y, z);
-               erodeFilter->Modified();                
+               erodeFilter->Modified();
                erodeFilter->Update();
-               vtkImageData* resultRec;
                if(repetitions == 0)
                {
-                       resultRec = erodeFilter->GetOutput();
-                       return resultRec;
+                       return erodeFilter->GetOutput();
                }else{
-                       erodeFilterRecursive(erodeFilter->GetOutput(), (repetitions-1), x, y, z);
+                       return erodeFilterRecursive(erodeFilter->GetOutput(), repetitions-1, x, y, z);
                } // if repetitions
 }