1 /*=========================================================================
3 Program: GDCM (Grassroots DICOM). A DICOM library
5 Copyright (c) 2006-2011 Mathieu Malaterre
7 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the above copyright notice for more information.
13 =========================================================================*/
14 // .NAME vtkGDCMPolyDataReader - read DICOM PolyData files (Contour Data...)
15 // .SECTION Description
16 // For now only support RTSTRUCT (RT Structure Set Storage)
18 // Need to do the same job for DVH Sequence/DVH Data...
20 // When using vtkGDCMPolyDataReader in conjonction with vtkGDCMImageReader
21 // it is *required* that FileLowerLeft is set to ON as coordinate system
22 // would be inconsistant in between the two data structures.
25 // vtkGDCMImageReader vtkGDCMPolyDataWriter vtkRTStructSetProperties
28 #ifndef VTKGDCMPOLYDATAREADER_H
29 #define VTKGDCMPOLYDATAREADER_H
31 #include "vtkPolyDataAlgorithm.h"
33 class vtkMedicalImageProperties;
34 class vtkRTStructSetProperties;
36 namespace gdcm { class Reader; }
38 class VTK_EXPORT vtkGDCMPolyDataReader : public vtkPolyDataAlgorithm
41 static vtkGDCMPolyDataReader *New();
42 vtkTypeRevisionMacro(vtkGDCMPolyDataReader,vtkPolyDataAlgorithm);
43 virtual void PrintSelf(ostream& os, vtkIndent indent);
46 // Set/Get the filename of the file to be read
47 vtkSetStringMacro(FileName);
48 vtkGetStringMacro(FileName);
51 // Get the medical image properties object
52 vtkGetObjectMacro(MedicalImageProperties, vtkMedicalImageProperties);
54 vtkGetObjectMacro(RTStructSetProperties, vtkRTStructSetProperties);
57 vtkGDCMPolyDataReader();
58 ~vtkGDCMPolyDataReader();
61 vtkMedicalImageProperties *MedicalImageProperties;
62 vtkRTStructSetProperties *RTStructSetProperties;
64 void FillMedicalImageInformation(const gdcm::Reader &reader);
67 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
68 int RequestInformation(
69 vtkInformation *vtkNotUsed(request),
70 vtkInformationVector **vtkNotUsed(inputVector),
71 vtkInformationVector *outputVector);
73 int RequestInformation_RTStructureSetStorage(gdcm::Reader const & reader);
74 int RequestData_RTStructureSetStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector);
75 int RequestInformation_HemodynamicWaveformStorage(gdcm::Reader const & reader);
76 int RequestData_HemodynamicWaveformStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector);
80 vtkGDCMPolyDataReader(const vtkGDCMPolyDataReader&); // Not implemented.
81 void operator=(const vtkGDCMPolyDataReader&); // Not implemented.