VTK  9.3.20240329
vtkPDataSetWriter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkPDataSetWriter_h
15 #define vtkPDataSetWriter_h
16 
17 #include "vtkDataSetWriter.h"
18 #include "vtkIOParallelModule.h" // For export macro
19 
20 #include <map> // for keeping track of extents
21 #include <vector> // for keeping track of extents
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class vtkImageData;
25 class vtkRectilinearGrid;
26 class vtkStructuredGrid;
28 
29 class VTKIOPARALLEL_EXPORT vtkPDataSetWriter : public vtkDataSetWriter
30 {
31 public:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
35 
39  int Write() override;
40 
42 
45  void SetNumberOfPieces(int num);
46  vtkGetMacro(NumberOfPieces, int);
48 
50 
54  vtkSetMacro(GhostLevel, int);
55  vtkGetMacro(GhostLevel, int);
57 
59 
65  vtkSetMacro(StartPiece, int);
66  vtkGetMacro(StartPiece, int);
67  vtkSetMacro(EndPiece, int);
68  vtkGetMacro(EndPiece, int);
70 
72 
76  vtkSetFilePathMacro(FilePattern);
77  vtkGetFilePathMacro(FilePattern);
79 
81 
87  vtkSetMacro(UseRelativeFileNames, vtkTypeBool);
88  vtkGetMacro(UseRelativeFileNames, vtkTypeBool);
89  vtkBooleanMacro(UseRelativeFileNames, vtkTypeBool);
91 
93 
99  vtkGetObjectMacro(Controller, vtkMultiProcessController);
101 
102 protected:
104  ~vtkPDataSetWriter() override;
105 
106  ostream* OpenFile();
108  vtkDataSet* input, char* root, char* str, size_t strSize, ostream* fptr);
109  int WriteImageMetaData(vtkImageData* input, char* root, char* str, size_t strSize, ostream* fptr);
111  vtkRectilinearGrid* input, char* root, char* str, size_t strSize, ostream* fptr);
113  vtkStructuredGrid* input, char* root, char* str, size_t strSize, ostream* fptr);
114 
116  int EndPiece;
119 
121 
122  char* FilePattern;
123 
124  void DeleteFiles();
125 
126  typedef std::map<int, std::vector<int>> ExtentsType;
128 
130 
131 private:
132  vtkPDataSetWriter(const vtkPDataSetWriter&) = delete;
133  void operator=(const vtkPDataSetWriter&) = delete;
134 };
135 
136 VTK_ABI_NAMESPACE_END
137 #endif
write any type of vtk dataset to file
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
topologically and geometrically regular array of data
Definition: vtkImageData.h:156
a simple class to control print indentation
Definition: vtkIndent.h:108
Multiprocessing communication superclass.
Manages writing pieces of a data set.
static vtkPDataSetWriter * New()
vtkGetFilePathMacro(FilePattern)
This file pattern uses the file name and piece number to construct a file name for the piece file.
ostream * OpenFile()
int WriteImageMetaData(vtkImageData *input, char *root, char *str, size_t strSize, ostream *fptr)
int WriteUnstructuredMetaData(vtkDataSet *input, char *root, char *str, size_t strSize, ostream *fptr)
vtkTypeBool UseRelativeFileNames
int Write() override
Write the pvtk file and corresponding vtk files.
vtkSetFilePathMacro(FilePattern)
This file pattern uses the file name and piece number to construct a file name for the piece file.
vtkMultiProcessController * Controller
void SetNumberOfPieces(int num)
This is how many pieces the whole data set will be divided into.
~vtkPDataSetWriter() override
int WriteRectilinearGridMetaData(vtkRectilinearGrid *input, char *root, char *str, size_t strSize, ostream *fptr)
virtual void SetController(vtkMultiProcessController *)
Controller used to communicate data type of blocks.
std::map< int, std::vector< int > > ExtentsType
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int WriteStructuredGridMetaData(vtkStructuredGrid *input, char *root, char *str, size_t strSize, ostream *fptr)
a dataset that is topologically regular with variable spacing in the three coordinate directions
topologically regular array of data
int vtkTypeBool
Definition: vtkABI.h:64