]> Creatis software - creaVtk.git/blob - bbtk_creaVtk_PKG/src/bbcreaVtkImageContinuousErode3D.cxx
#3481 Bug ImageContinuousErode3D return empty object clean
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkImageContinuousErode3D.cxx
1
2 #include "bbcreaVtkImageContinuousErode3D.h"
3 #include "bbcreaVtkPackage.h"
4
5 #include "vtkImageContinuousErode3D.h"
6
7
8 namespace bbcreaVtk
9 {
10
11 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ImageContinuousErode3D)
12 BBTK_BLACK_BOX_IMPLEMENTATION(ImageContinuousErode3D,bbtk::AtomicBlackBox);
13
14 void ImageContinuousErode3D::Process()
15 {
16     if (bbGetInputImage()!=NULL)
17     {
18                 vtkImageData* result = erodeFilterRecursive(bbGetInputImage(), bbGetInputRepetitions(), bbGetInputX(),bbGetInputY(),bbGetInputZ());
19                 bbSetOutputOut(result);
20     } else {
21         bbSetOutputOut(NULL);
22     } // if Image
23 }
24
25 vtkImageData* ImageContinuousErode3D::erodeFilterRecursive(vtkImageData* image, int repetitions, double x, double y, double z)
26 {
27                 vtkImageContinuousErode3D *erodeFilter = vtkImageContinuousErode3D ::New();
28 //EED 2017-01-01 Migration VTK7
29 #if VTK_MAJOR_VERSION <= 5
30     erodeFilter->SetInput (image);
31 #else
32     erodeFilter->SetInputData(image);
33 #endif
34     erodeFilter->SetKernelSize(x, y, z);
35                 erodeFilter->Modified();
36                 erodeFilter->Update();
37                 if(repetitions == 0)
38                 {
39                         return erodeFilter->GetOutput();
40                 }else{
41                         return erodeFilterRecursive(erodeFilter->GetOutput(), repetitions-1, x, y, z);
42                 } // if repetitions
43 }
44
45 void ImageContinuousErode3D::bbUserSetDefaultValues()
46 {
47         bbSetInputX(3); 
48         bbSetInputY(3); 
49         bbSetInputY(3); 
50         bbSetInputRepetitions(0); 
51 }
52 //===== 
53 // 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)
54 //===== 
55 void ImageContinuousErode3D::bbUserInitializeProcessing()
56 {
57 }
58 //===== 
59 // 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)
60 //===== 
61 void ImageContinuousErode3D::bbUserFinalizeProcessing()
62 {
63
64 }
65 }
66 // EO namespace bbcreaVtk
67
68