]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkPolyDataToImageData.cxx
#3513 CleanMeshWithPatch
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkPolyDataToImageData.cxx
index 2e80837c8b0050c437d8e8262755ee3be7a1a5d1..bed2479046a0c0657f3aba14bf7fab0b63e2942d 100644 (file)
@@ -4,16 +4,6 @@
 #include "bbcreaVtkPolyDataToImageData.h"
 #include "bbcreaVtkPackage.h"
 
-#include "vtkPolyDataToImageStencil.h"
-#include "vtkImageStencil.h"
-
-#include "vtkCleanPolyData.h"
-#include "vtkTriangleFilter.h"
-
-#include "vtkExtractVOI.h"
-#include "vtkExtractVOI.h"
-
-
 
 namespace bbcreaVtk
 {
@@ -41,87 +31,79 @@ void PolyDataToImageData::Process()
 //    bbSetOutputOut( bbGetInputIn() );
 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
 
-       if ((bbGetInputInPolyData()!=NULL) && (bbGetInputInImage()!=NULL))
+       if ((bbGetInputInPolyData()!=NULL) && (bbGetInputInImage()!=NULL) )
        {
-
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
 printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
-
                int ext[6];
+        double spc[3];
+        double org[3];
                bbGetInputInImage()->GetExtent( ext );
+        bbGetInputInImage()->GetSpacing( spc );
+        bbGetInputInImage()->GetOrigin( org );
 
-               vtkCleanPolyData *clean1 = vtkCleanPolyData::New();
+//             vtkCleanPolyData *clean1 = vtkCleanPolyData::New();             
+               if (clean1!=NULL) clean1->Delete();
+               clean1 = vtkCleanPolyData::New();
                clean1->SetInputData( bbGetInputInPolyData() );
                clean1->Update();
                vtkTriangleFilter *triangle1 = vtkTriangleFilter::New();
                triangle1->SetInputData( clean1->GetOutput() );
                triangle1->Update();
-
-               vtkPolyDataToImageStencil *dataToStencil = vtkPolyDataToImageStencil::New();
+//             vtkPolyDataToImageStencil *dataToStencil = vtkPolyDataToImageStencil::New();
+               if (dataToStencil!=NULL) dataToStencil->Delete();
+               dataToStencil = vtkPolyDataToImageStencil::New();
                dataToStencil->SetInputData( triangle1->GetOutput() );
+        dataToStencil->SetOutputOrigin( org );
+        dataToStencil->SetOutputSpacing( spc );
                dataToStencil->SetOutputWholeExtent( ext );
                dataToStencil->Update();
-
-               vtkExtractVOI *extract = vtkExtractVOI::New();
+//             vtkExtractVOI *extract = vtkExtractVOI::New();
+               if (extract!=NULL) extract->Delete();
+               extract = vtkExtractVOI::New();
                extract->SetVOI( ext );
                extract->SetSampleRate(1, 1, 1);
                extract->SetInputData( bbGetInputInImage() );
                extract->ReleaseDataFlagOff();
                extract->Update();      
-
-               vtkImageStencil *stencil = vtkImageStencil::New();
+//             vtkImageStencil *stencil = vtkImageStencil::New();
+               if (stencil!=NULL) stencil->Delete();
+               stencil = vtkImageStencil::New();
                stencil->SetInputData( extract->GetOutput() );
                stencil->Update();
                stencil->SetStencilData(  dataToStencil->GetOutput() );
                stencil->ReverseStencilOn();
                stencil->SetBackgroundValue( bbGetInputBackgroundValue() );
                stencil->Update();
-
                bbSetOutputOut( stencil->GetOutput() );
        } else {
                printf("EED Warnning!  PolyDataToImageData::Process  > Missing Image or PolyData inputs\n");
+               bbSetOutputOut( NULL);
        }// if In 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 PolyDataToImageData::bbUserSetDefaultValues()
 {
-
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
        bbSetInputInPolyData(NULL);
        bbSetInputInImage(NULL);
        bbSetInputBackgroundValue(255);
 }
 //===== 
 // 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 PolyDataToImageData::bbUserInitializeProcessing()
 {
-
 //  THE INITIALIZATION METHOD BODY :
 //    Here does nothing 
 //    but this is where you should allocate the internal/output pointers 
 //    if any 
-
-  
+       clean1                  = NULL;
+       dataToStencil   = NULL;
+       extract                 = NULL;
+       stencil                 = 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)