#include "bbcreaVtkImageContinuousDilate3D.h" #include "bbcreaVtkPackage.h" namespace bbcreaVtk { BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ImageContinuousDilate3D) BBTK_BLACK_BOX_IMPLEMENTATION(ImageContinuousDilate3D,bbtk::AtomicBlackBox); void ImageContinuousDilate3D::Process() { vtkImageData* result = dilateFilterRecursive(bbGetInputImage(), bbGetInputRepetitions(), bbGetInputX(),bbGetInputY(),bbGetInputZ()); bbSetOutputOut(result); } vtkImageData* ImageContinuousDilate3D::dilateFilterRecursive(vtkImageData* image, int repetitions, double x, double y, double z) { vtkImageContinuousDilate3D *dilateFilter = vtkImageContinuousDilate3D ::New(); //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 dilateFilter->SetInput (image); #else dilateFilter->SetInputData(image); #endif dilateFilter->SetKernelSize(x, y, z); dilateFilter->Modified(); dilateFilter->Update(); vtkImageData* resultRec; if(repetitions == 0) { resultRec = dilateFilter->GetOutput(); return resultRec; }else{ dilateFilterRecursive(dilateFilter->GetOutput(), (repetitions-1), x, y, z); }// if repetitions } void ImageContinuousDilate3D::bbUserSetDefaultValues() { bbSetInputX(3); bbSetInputY(3); bbSetInputY(3); bbSetInputRepetitions(0); } void ImageContinuousDilate3D::bbUserInitializeProcessing() { } void ImageContinuousDilate3D::bbUserFinalizeProcessing() { // THE FINALIZATION METHOD BODY : // Here does nothing // but this is where you should desallocate the internal/output pointers // if any } } // EO namespace bbcreaVtk