#include "clitkImageCommon.h"
// vtk
+#include <vtkVersion.h>
#include <vtkPolyDataToImageStencil.h>
#include <vtkSmartPointer.h>
#include <vtkImageStencil.h>
//--------------------------------------------------------------------
void clitk::DicomRTStruct2ImageFilter::Update()
{
- DD("DicomRTStruct2ImageFilter::Update");
if (!mROI) {
std::cerr << "Error. No ROI set, please use SetROI." << std::endl;
exit(0);
// Get bounds
double *bounds=mesh->GetBounds();
- // for(int i=0; i<6; i++){
-// DD(bounds[i]);
-// }
// Compute origin
std::vector<double> origin;
// Create new output image
mBinaryImage = vtkSmartPointer<vtkImageData>::New();
+#if VTK_MAJOR_VERSION <= 5
mBinaryImage->SetScalarTypeToUnsignedChar();
+#endif
mBinaryImage->SetOrigin(&origin[0]);
mBinaryImage->SetSpacing(&mSpacing[0]);
mBinaryImage->SetExtent(0, extend[0],
0, extend[1],
0, extend[2]);
+#if VTK_MAJOR_VERSION <= 5
mBinaryImage->AllocateScalars();
+#else
+ mBinaryImage->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
+#endif
- // for(int i=0; i<3; i++){
- // DD(origin[i]);
- // DD(extend[i]);
- // DD(mBinaryImage->GetDimensions()[i]);
- // }
memset(mBinaryImage->GetScalarPointer(), 0,
mBinaryImage->GetDimensions()[0]*mBinaryImage->GetDimensions()[1]*mBinaryImage->GetDimensions()[2]*sizeof(unsigned char));
// Extrude
vtkSmartPointer<vtkLinearExtrusionFilter> extrude=vtkSmartPointer<vtkLinearExtrusionFilter>::New();
+#if VTK_MAJOR_VERSION <= 5
extrude->SetInput(mesh);
+#else
+ extrude->SetInputData(mesh);
+#endif
///We extrude in the -slice_spacing direction to respect the FOCAL convention (NEEDED !)
extrude->SetVector(0, 0, -mSpacing[2]);
//http://www.nabble.com/Bug-in-vtkPolyDataToImageStencil--td23368312.html#a23370933
sts->SetTolerance(0);
sts->SetInformationInput(mBinaryImage);
+#if VTK_MAJOR_VERSION <= 5
sts->SetInput(extrude->GetOutput());
+#else
+ sts->SetInputData(extrude->GetOutput());
+#endif
//sts->SetInput(mesh);
vtkSmartPointer<vtkImageStencil> stencil=vtkSmartPointer<vtkImageStencil>::New();
+#if VTK_MAJOR_VERSION <= 5
stencil->SetStencil(sts->GetOutput());
+#else
+ stencil->SetStencilData(sts->GetOutput());
+#endif
+#if VTK_MAJOR_VERSION <= 5
stencil->SetInput(mBinaryImage);
+#else
+ stencil->SetInputData(mBinaryImage);
+#endif
stencil->ReverseStencilOn();
stencil->Update();