]> Creatis software - clitk.git/blob - common/vtkGDCMPolyDataReader.h
motion masks with and without bands
[clitk.git] / common / vtkGDCMPolyDataReader.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to:
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
8
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.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================*/
18 /*=========================================================================
19
20   Program: GDCM (Grassroots DICOM). A DICOM library
21
22   Copyright (c) 2006-2011 Mathieu Malaterre
23   All rights reserved.
24   See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
25
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.
29
30 =========================================================================*/
31 // .NAME vtkGDCMPolyDataReader - read DICOM PolyData files (Contour Data...)
32 // .SECTION Description
33 // For now only support RTSTRUCT (RT Structure Set Storage)
34 // .SECTION TODO
35 // Need to do the same job for DVH Sequence/DVH Data...
36 // .SECTION Warning
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.
40 //
41 // .SECTION See Also
42 // vtkGDCMImageReader vtkGDCMPolyDataWriter vtkRTStructSetProperties
43
44
45 #ifndef VTKGDCMPOLYDATAREADER_H
46 #define VTKGDCMPOLYDATAREADER_H
47
48 #include "vtkPolyDataAlgorithm.h"
49
50 class vtkMedicalImageProperties;
51 class vtkRTStructSetProperties;
52 //BTX
53 namespace gdcm { class Reader; }
54 //ETX
55 class VTK_EXPORT vtkGDCMPolyDataReader : public vtkPolyDataAlgorithm
56 {
57 public:
58   static vtkGDCMPolyDataReader *New();
59   vtkTypeRevisionMacro(vtkGDCMPolyDataReader,vtkPolyDataAlgorithm);
60   virtual void PrintSelf(ostream& os, vtkIndent indent);
61
62   // Description:
63   // Set/Get the filename of the file to be read
64   vtkSetStringMacro(FileName);
65   vtkGetStringMacro(FileName);
66
67   // Description:
68   // Get the medical image properties object
69   vtkGetObjectMacro(MedicalImageProperties, vtkMedicalImageProperties);
70
71   vtkGetObjectMacro(RTStructSetProperties, vtkRTStructSetProperties);
72
73 protected:
74   vtkGDCMPolyDataReader();
75   ~vtkGDCMPolyDataReader();
76
77   char *FileName;
78   vtkMedicalImageProperties *MedicalImageProperties;
79   vtkRTStructSetProperties *RTStructSetProperties;
80 //BTX
81   void FillMedicalImageInformation(const gdcm::Reader &reader);
82 //ETX
83
84   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
85   int RequestInformation(
86     vtkInformation *vtkNotUsed(request),
87     vtkInformationVector **vtkNotUsed(inputVector),
88     vtkInformationVector *outputVector);
89 //BTX
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);
94 //ETX
95
96 private:
97   vtkGDCMPolyDataReader(const vtkGDCMPolyDataReader&);  // Not implemented.
98   void operator=(const vtkGDCMPolyDataReader&);  // Not implemented.
99 };
100
101 #endif