VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGDALRasterReader.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm 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 =========================================================================*/ 00031 #ifndef vtkGDALRasterReader_h 00032 #define vtkGDALRasterReader_h 00033 00034 #include <vtkImageReader2.h> 00035 #include <vtkIOGDALModule.h> // For export macro 00036 00037 // C++ includes 00038 #include <string> // string is required 00039 #include <vector> // vector is required 00040 00041 class VTKIOGDAL_EXPORT vtkGDALRasterReader : public vtkImageReader2 00042 { 00043 public: 00044 static vtkGDALRasterReader* New(); 00045 vtkTypeMacro(vtkGDALRasterReader, vtkImageReader2); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00047 00048 vtkGDALRasterReader(); 00049 virtual ~vtkGDALRasterReader(); 00050 00052 00053 vtkSetStringMacro(FileName); 00054 // Get input file name 00055 vtkGetStringMacro(FileName); 00057 00059 const char* GetProjectionString() const; 00060 00063 const double* GetGeoCornerPoints(); 00064 00066 00067 vtkSetVector2Macro(TargetDimensions, int); 00068 vtkGetVector2Macro(TargetDimensions, int); 00070 00072 00073 vtkGetVector2Macro(RasterDimensions, int); 00075 00076 //BTX 00078 00079 const std::vector<std::string>& GetMetaData(); 00080 //ETX 00082 00084 double GetInvalidValue(); 00085 00086 //BTX 00088 00089 std::vector<std::string> GetDomainMetaData(const std::string& domain); 00090 //ETX 00092 00094 00095 const std::string& GetDriverShortName(); 00096 const std::string& GetDriverLongName(); 00098 00099 protected: 00100 00101 virtual int RequestData(vtkInformation* request, 00102 vtkInformationVector** inputVector, 00103 vtkInformationVector* outputVector); 00104 00105 virtual int RequestInformation(vtkInformation* request, 00106 vtkInformationVector** inputVector, 00107 vtkInformationVector* outputVector); 00108 00109 virtual int FillOutputPortInformation(int port, 00110 vtkInformation* info); 00111 00112 protected: 00113 int TargetDimensions[2]; 00114 int RasterDimensions[2]; 00115 std::string Projection; 00116 std::string DomainMetaData; 00117 std::string DriverShortName; 00118 std::string DriverLongName; 00119 std::vector<std::string> Domains; 00120 std::vector<std::string> MetaData; 00121 00122 class vtkGDALRasterReaderInternal; 00123 vtkGDALRasterReaderInternal* Implementation; 00124 00125 private: 00126 vtkGDALRasterReader(const vtkGDALRasterReader&); // Not implemented. 00127 void operator=(const vtkGDALRasterReader&); // Not implemented 00128 }; 00129 00130 #endif // vtkGDALRasterReader_h