#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
{
// 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(128);
+ 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);
-
+ 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)