]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkPolyDataToImageData.cxx
#3339 creaVtk Bug New Normal - Memory leak CreateMeshFromPoints PolyDataToImageData
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkPolyDataToImageData.cxx
index 2e80837c8b0050c437d8e8262755ee3be7a1a5d1..b5a495f11662c44b6352a6e2548db97ef8bfffbf 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,7 +31,7 @@ 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 ");
@@ -64,26 +54,34 @@ printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .........
                int ext[6];
                bbGetInputInImage()->GetExtent( ext );
 
-               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->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() );
@@ -120,8 +118,11 @@ void PolyDataToImageData::bbUserInitializeProcessing()
 //    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)