#include <itkVTKImageToImageFilter.h>
// gdcm
+#include <vtkRTStructSetProperties.h>
+#include <vtkGDCMPolyDataReader.h>
#include <vtkGDCMPolyDataWriter.h>
//--------------------------------------------------------------------
std::cout << "Number of structures in the dicom-rt-struct : "
<< p->GetNumberOfStructureSetROIs() << std::endl;
}
-
// number of additional contours
int m = m_InputFilenames.size();
roiNames->SetNumberOfValues(numMasks);
roiAlgorithms->SetNumberOfValues(numMasks);
roiTypes->SetNumberOfValues(numMasks);
-
+
// Convert the image into a mesh
std::vector<vtkSmartPointer<vtkPolyData> > meshes;
std::vector<std::string> m_ROINames;
meshes.resize(m);
m_ROINames.resize(m);
for(unsigned int i=0; i<m; i++) {
-
+
// read image
// typedef float PixelType;
//typedef itk::Image<PixelType, 3> ImageType;
GetFilenameName(vtksys::SystemTools::GetFilenameWithoutLastExtension(m_InputFilenames[i]));
std::string name = oss.str();
m_ROINames[i] = name;
-
+
// convert to mesh
typedef clitk::BinaryImageToMeshFilter<ImageType> BinaryImageToMeshFilterType;
typename BinaryImageToMeshFilterType::Pointer convert = BinaryImageToMeshFilterType::New();
if (GetVerboseFlag()) {
std::cout << "Mesh has " << meshes[i]->GetNumberOfLines() << " lines." << std::endl;
}
-
+
/*
// debug mesh write FIXME
vtkSmartPointer<vtkPolyDataWriter> wr = vtkSmartPointer<vtkPolyDataWriter>::New();
wr->Write();
*/
}
-
+
// Copy previous contours
for (unsigned int i = 0; i < numMasks-m; ++i) {
+#if VTK_MAJOR_VERSION <= 5
writer->SetInput(i, reader->GetOutput(i));
+#else
+ writer->SetInputData(i, reader->GetOutput(i));
+#endif
std::string theString = reader->GetRTStructSetProperties()->GetStructureSetROIName(i);
roiNames->InsertValue(i, theString);
theString = reader->GetRTStructSetProperties()->GetStructureSetROIGenerationAlgorithm(i);
roiAlgorithms->InsertValue(i, theString);
theString = reader->GetRTStructSetProperties()->GetStructureSetRTROIInterpretedType(i);
roiTypes->InsertValue(i, theString);
- }
+ }
// Add new ones
for (unsigned int i = numMasks-m; i < numMasks; ++i) {
+#if VTK_MAJOR_VERSION <= 5
writer->SetInput(i, meshes[i-numMasks+m]);
+#else
+ writer->SetInputData(i, meshes[i-numMasks+m]);
+#endif
roiNames->InsertValue(i, m_ROINames[i-numMasks+m]);
roiAlgorithms->InsertValue(i, "CLITK_CREATED");
roiTypes->InsertValue(i, m_ROIType);
}
-
+
/*
// Visu DEBUG
vtkPolyDataMapper *cubeMapper = vtkPolyDataMapper::New();
writer->InitializeRTStructSet(m_DicomFolder,
reader->GetRTStructSetProperties()->GetStructureSetLabel(),
reader->GetRTStructSetProperties()->GetStructureSetName(),
- roiNames, roiAlgorithms, roiTypes);
+ roiTypes, roiAlgorithms, roiTypes);
writer->Write();
reader->Delete();
roiNames->Delete();