GDCM 2.0.17
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 Module: $URL$ 00005 00006 Copyright (c) 2006-2010 Mathieu Malaterre 00007 All rights reserved. 00008 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 // .NAME vtkGDCMPolyDataReader - read DICOM PolyData files (Contour Data...) 00016 // .SECTION Description 00017 // For now only support RTSTRUCT (RT Structure Set Storage) 00018 // .SECTION TODO 00019 // Need to do the same job for DVH Sequence/DVH Data... 00020 // .SECTION Warning 00021 // When using vtkGDCMPolyDataReader in conjonction with vtkGDCMImageReader 00022 // it is *required* that FileLowerLeft is set to ON as coordinate system 00023 // would be inconsistant in between the two data structures. 00024 // 00025 // .SECTION See Also 00026 // vtkGDCMImageReader vtkMedicalImageReader2 vtkMedicalImageProperties 00027 00028 00029 #ifndef VTKGDCMPOLYDATAREADER_H 00030 #define VTKGDCMPOLYDATAREADER_H 00031 00032 #include "vtkPolyDataAlgorithm.h" 00033 00034 class vtkMedicalImageProperties; 00035 //BTX 00036 namespace gdcm { class Reader; } 00037 //ETX 00038 class VTK_EXPORT vtkGDCMPolyDataReader : public vtkPolyDataAlgorithm 00039 { 00040 public: 00041 static vtkGDCMPolyDataReader *New(); 00042 vtkTypeRevisionMacro(vtkGDCMPolyDataReader,vtkPolyDataAlgorithm); 00043 virtual void PrintSelf(ostream& os, vtkIndent indent); 00044 00045 // Description: 00046 // Set/Get the filename of the file to be read 00047 vtkSetStringMacro(FileName); 00048 vtkGetStringMacro(FileName); 00049 00050 // Description: 00051 // Get the medical image properties object 00052 vtkGetObjectMacro(MedicalImageProperties, vtkMedicalImageProperties); 00053 00054 protected: 00055 vtkGDCMPolyDataReader(); 00056 ~vtkGDCMPolyDataReader(); 00057 00058 char *FileName; 00059 vtkMedicalImageProperties *MedicalImageProperties; 00060 //BTX 00061 void FillMedicalImageInformation(const gdcm::Reader &reader); 00062 //ETX 00063 00064 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00065 int RequestInformation( 00066 vtkInformation *vtkNotUsed(request), 00067 vtkInformationVector **vtkNotUsed(inputVector), 00068 vtkInformationVector *outputVector); 00069 //BTX 00070 int RequestInformation_RTStructureSetStorage(gdcm::Reader const & reader); 00071 int RequestData_RTStructureSetStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector); 00072 int RequestInformation_HemodynamicWaveformStorage(gdcm::Reader const & reader); 00073 int RequestData_HemodynamicWaveformStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector); 00074 //ETX 00075 00076 private: 00077 vtkGDCMPolyDataReader(const vtkGDCMPolyDataReader&); // Not implemented. 00078 void operator=(const vtkGDCMPolyDataReader&); // Not implemented. 00079 }; 00080 00081 #endif