1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://www.centreleonberard.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
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 copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================*/
18 /*=========================================================================
20 Program: GDCM (Grassroots DICOM). A DICOM library
22 Copyright (c) 2006-2011 Mathieu Malaterre
24 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
26 This software is distributed WITHOUT ANY WARRANTY; without even
27 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
28 PURPOSE. See the above copyright notice for more information.
30 =========================================================================*/
31 // .NAME vtkGDCMPolyDataReader - read DICOM PolyData files (Contour Data...)
32 // .SECTION Description
33 // For now only support RTSTRUCT (RT Structure Set Storage)
35 // Need to do the same job for DVH Sequence/DVH Data...
37 // When using vtkGDCMPolyDataReader in conjonction with vtkGDCMImageReader
38 // it is *required* that FileLowerLeft is set to ON as coordinate system
39 // would be inconsistant in between the two data structures.
42 // vtkGDCMImageReader vtkGDCMPolyDataWriter vtkRTStructSetProperties
45 #ifndef VTKGDCMPOLYDATAREADER_H
46 #define VTKGDCMPOLYDATAREADER_H
48 #include "vtkPolyDataAlgorithm.h"
50 class vtkMedicalImageProperties;
51 class vtkRTStructSetProperties;
53 namespace gdcm { class Reader; }
55 class VTK_EXPORT vtkGDCMPolyDataReader : public vtkPolyDataAlgorithm
58 static vtkGDCMPolyDataReader *New();
59 vtkTypeRevisionMacro(vtkGDCMPolyDataReader,vtkPolyDataAlgorithm);
60 virtual void PrintSelf(ostream& os, vtkIndent indent);
63 // Set/Get the filename of the file to be read
64 vtkSetStringMacro(FileName);
65 vtkGetStringMacro(FileName);
68 // Get the medical image properties object
69 vtkGetObjectMacro(MedicalImageProperties, vtkMedicalImageProperties);
71 vtkGetObjectMacro(RTStructSetProperties, vtkRTStructSetProperties);
74 vtkGDCMPolyDataReader();
75 ~vtkGDCMPolyDataReader();
78 vtkMedicalImageProperties *MedicalImageProperties;
79 vtkRTStructSetProperties *RTStructSetProperties;
81 void FillMedicalImageInformation(const gdcm::Reader &reader);
84 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
85 int RequestInformation(
86 vtkInformation *vtkNotUsed(request),
87 vtkInformationVector **vtkNotUsed(inputVector),
88 vtkInformationVector *outputVector);
90 int RequestInformation_RTStructureSetStorage(gdcm::Reader const & reader);
91 int RequestData_RTStructureSetStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector);
92 int RequestInformation_HemodynamicWaveformStorage(gdcm::Reader const & reader);
93 int RequestData_HemodynamicWaveformStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector);
97 vtkGDCMPolyDataReader(const vtkGDCMPolyDataReader&); // Not implemented.
98 void operator=(const vtkGDCMPolyDataReader&); // Not implemented.