GDCM
2.2.0
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 00005 Copyright (c) 2006-2011 Mathieu Malaterre 00006 All rights reserved. 00007 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 // .NAME vtkGDCMPolyDataReader - read DICOM PolyData files (Contour Data...) 00015 // .SECTION Description 00016 // For now only support RTSTRUCT (RT Structure Set Storage) 00017 // .SECTION TODO 00018 // Need to do the same job for DVH Sequence/DVH Data... 00019 // .SECTION Warning 00020 // When using vtkGDCMPolyDataReader in conjonction with vtkGDCMImageReader 00021 // it is *required* that FileLowerLeft is set to ON as coordinate system 00022 // would be inconsistant in between the two data structures. 00023 // 00024 // .SECTION See Also 00025 // vtkGDCMImageReader vtkGDCMPolyDataWriter vtkRTStructSetProperties 00026 00027 00028 #ifndef VTKGDCMPOLYDATAREADER_H 00029 #define VTKGDCMPOLYDATAREADER_H 00030 00031 #include "vtkPolyDataAlgorithm.h" 00032 00033 class vtkMedicalImageProperties; 00034 class vtkRTStructSetProperties; 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 vtkGetObjectMacro(RTStructSetProperties, vtkRTStructSetProperties); 00055 00056 protected: 00057 vtkGDCMPolyDataReader(); 00058 ~vtkGDCMPolyDataReader(); 00059 00060 char *FileName; 00061 vtkMedicalImageProperties *MedicalImageProperties; 00062 vtkRTStructSetProperties *RTStructSetProperties; 00063 //BTX 00064 void FillMedicalImageInformation(const gdcm::Reader &reader); 00065 //ETX 00066 00067 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00068 int RequestInformation( 00069 vtkInformation *vtkNotUsed(request), 00070 vtkInformationVector **vtkNotUsed(inputVector), 00071 vtkInformationVector *outputVector); 00072 //BTX 00073 int RequestInformation_RTStructureSetStorage(gdcm::Reader const & reader); 00074 int RequestData_RTStructureSetStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector); 00075 int RequestInformation_HemodynamicWaveformStorage(gdcm::Reader const & reader); 00076 int RequestData_HemodynamicWaveformStorage(gdcm::Reader const &reader, vtkInformationVector *outputVector); 00077 //ETX 00078 00079 private: 00080 vtkGDCMPolyDataReader(const vtkGDCMPolyDataReader&); // Not implemented. 00081 void operator=(const vtkGDCMPolyDataReader&); // Not implemented. 00082 }; 00083 00084 #endif