VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPDataSetWriter.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 =========================================================================*/ 00025 #ifndef vtkPDataSetWriter_h 00026 #define vtkPDataSetWriter_h 00027 00028 #include "vtkIOParallelModule.h" // For export macro 00029 #include "vtkDataSetWriter.h" 00030 00031 #include <map> // for keeping track of extents 00032 #include <vector> // for keeping track of extents 00033 00034 class vtkImageData; 00035 class vtkRectilinearGrid; 00036 class vtkStructuredGrid; 00037 class vtkMultiProcessController; 00038 00039 class VTKIOPARALLEL_EXPORT vtkPDataSetWriter : public vtkDataSetWriter 00040 { 00041 public: 00042 void PrintSelf(ostream& os, vtkIndent indent); 00043 vtkTypeMacro(vtkPDataSetWriter,vtkDataSetWriter); 00044 static vtkPDataSetWriter *New(); 00045 00047 virtual int Write(); 00048 00050 00051 void SetNumberOfPieces(int num); 00052 vtkGetMacro(NumberOfPieces, int); 00054 00056 00058 vtkSetMacro(GhostLevel, int); 00059 vtkGetMacro(GhostLevel, int); 00061 00063 00067 vtkSetMacro(StartPiece, int); 00068 vtkGetMacro(StartPiece, int); 00069 vtkSetMacro(EndPiece, int); 00070 vtkGetMacro(EndPiece, int); 00072 00074 00076 vtkSetStringMacro(FilePattern); 00077 vtkGetStringMacro(FilePattern); 00079 00081 00086 vtkSetMacro(UseRelativeFileNames, int); 00087 vtkGetMacro(UseRelativeFileNames, int); 00088 vtkBooleanMacro(UseRelativeFileNames, int); 00090 00092 00095 virtual void SetController(vtkMultiProcessController*); 00096 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00098 00099 protected: 00100 vtkPDataSetWriter(); 00101 ~vtkPDataSetWriter(); 00102 00103 //BTX 00104 ostream *OpenFile(); 00105 int WriteUnstructuredMetaData(vtkDataSet *input, 00106 char *root, char *str, ostream *fptr); 00107 int WriteImageMetaData(vtkImageData *input, 00108 char *root, char *str, ostream *fptr); 00109 int WriteRectilinearGridMetaData(vtkRectilinearGrid *input, 00110 char *root, char *str, ostream *fptr); 00111 int WriteStructuredGridMetaData(vtkStructuredGrid *input, 00112 char *root, char *str, ostream *fptr); 00113 //ETX 00114 00115 int StartPiece; 00116 int EndPiece; 00117 int NumberOfPieces; 00118 int GhostLevel; 00119 00120 int UseRelativeFileNames; 00121 00122 char *FilePattern; 00123 00124 void DeleteFiles(); 00125 00126 typedef std::map<int, std::vector<int> > ExtentsType; 00127 ExtentsType Extents; 00128 00129 vtkMultiProcessController* Controller; 00130 00131 private: 00132 vtkPDataSetWriter(const vtkPDataSetWriter&); // Not implemented 00133 void operator=(const vtkPDataSetWriter&); // Not implemented 00134 }; 00135 00136 #endif