VTK  9.0.1
vtkPDataSetWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPDataSetWriter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
23 #ifndef vtkPDataSetWriter_h
24 #define vtkPDataSetWriter_h
25 
26 #include "vtkDataSetWriter.h"
27 #include "vtkIOParallelModule.h" // For export macro
28 
29 #include <map> // for keeping track of extents
30 #include <vector> // for keeping track of extents
31 
32 class vtkImageData;
33 class vtkRectilinearGrid;
34 class vtkStructuredGrid;
36 
37 class VTKIOPARALLEL_EXPORT vtkPDataSetWriter : public vtkDataSetWriter
38 {
39 public:
40  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
47  int Write() override;
48 
50 
53  void SetNumberOfPieces(int num);
54  vtkGetMacro(NumberOfPieces, int);
56 
58 
62  vtkSetMacro(GhostLevel, int);
63  vtkGetMacro(GhostLevel, int);
65 
67 
73  vtkSetMacro(StartPiece, int);
74  vtkGetMacro(StartPiece, int);
75  vtkSetMacro(EndPiece, int);
76  vtkGetMacro(EndPiece, int);
78 
80 
84  vtkSetStringMacro(FilePattern);
85  vtkGetStringMacro(FilePattern);
87 
89 
95  vtkSetMacro(UseRelativeFileNames, vtkTypeBool);
96  vtkGetMacro(UseRelativeFileNames, vtkTypeBool);
97  vtkBooleanMacro(UseRelativeFileNames, vtkTypeBool);
99 
101 
107  vtkGetObjectMacro(Controller, vtkMultiProcessController);
109 
110 protected:
112  ~vtkPDataSetWriter() override;
113 
114  ostream* OpenFile();
116  vtkDataSet* input, char* root, char* str, size_t strSize, ostream* fptr);
117  int WriteImageMetaData(vtkImageData* input, char* root, char* str, size_t strSize, ostream* fptr);
119  vtkRectilinearGrid* input, char* root, char* str, size_t strSize, ostream* fptr);
121  vtkStructuredGrid* input, char* root, char* str, size_t strSize, ostream* fptr);
122 
124  int EndPiece;
127 
129 
130  char* FilePattern;
131 
132  void DeleteFiles();
133 
134  typedef std::map<int, std::vector<int> > ExtentsType;
136 
138 
139 private:
140  vtkPDataSetWriter(const vtkPDataSetWriter&) = delete;
141  void operator=(const vtkPDataSetWriter&) = delete;
142 };
143 
144 #endif
vtkPDataSetWriter::~vtkPDataSetWriter
~vtkPDataSetWriter() override
vtkPDataSetWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkPDataSetWriter::New
static vtkPDataSetWriter * New()
vtkPDataSetWriter::SetNumberOfPieces
void SetNumberOfPieces(int num)
This is how many pieces the whole data set will be divided into.
vtkPDataSetWriter::OpenFile
ostream * OpenFile()
vtkPDataSetWriter::NumberOfPieces
int NumberOfPieces
Definition: vtkPDataSetWriter.h:125
vtkPDataSetWriter::Write
int Write() override
Write the pvtk file and cooresponding vtk files.
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:52
vtkPDataSetWriter::SetController
virtual void SetController(vtkMultiProcessController *)
Controller used to communicate data type of blocks.
vtkDataSetWriter.h
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:58
vtkPDataSetWriter::WriteStructuredGridMetaData
int WriteStructuredGridMetaData(vtkStructuredGrid *input, char *root, char *str, size_t strSize, ostream *fptr)
vtkPDataSetWriter::StartPiece
int StartPiece
Definition: vtkPDataSetWriter.h:123
vtkPDataSetWriter
Manages writing pieces of a data set.
Definition: vtkPDataSetWriter.h:38
vtkPDataSetWriter::ExtentsType
std::map< int, std::vector< int > > ExtentsType
Definition: vtkPDataSetWriter.h:134
vtkDataSetWriter
write any type of vtk dataset to file
Definition: vtkDataSetWriter.h:31
vtkPDataSetWriter::DeleteFiles
void DeleteFiles()
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:76
vtkPDataSetWriter::UseRelativeFileNames
vtkTypeBool UseRelativeFileNames
Definition: vtkPDataSetWriter.h:128
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:34
vtkPDataSetWriter::EndPiece
int EndPiece
Definition: vtkPDataSetWriter.h:124
vtkPDataSetWriter::FilePattern
char * FilePattern
Definition: vtkPDataSetWriter.h:130
vtkPDataSetWriter::GhostLevel
int GhostLevel
Definition: vtkPDataSetWriter.h:126
vtkPDataSetWriter::Extents
ExtentsType Extents
Definition: vtkPDataSetWriter.h:135
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
vtkPDataSetWriter::vtkPDataSetWriter
vtkPDataSetWriter()
vtkPDataSetWriter::WriteRectilinearGridMetaData
int WriteRectilinearGridMetaData(vtkRectilinearGrid *input, char *root, char *str, size_t strSize, ostream *fptr)
vtkPDataSetWriter::WriteImageMetaData
int WriteImageMetaData(vtkImageData *input, char *root, char *str, size_t strSize, ostream *fptr)
vtkPDataSetWriter::WriteUnstructuredMetaData
int WriteUnstructuredMetaData(vtkDataSet *input, char *root, char *str, size_t strSize, ostream *fptr)
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkPDataSetWriter::Controller
vtkMultiProcessController * Controller
Definition: vtkPDataSetWriter.h:137