VTK  9.4.20250201
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
23VTK_ABI_NAMESPACE_BEGIN
24class vtkImageData;
28
29class VTKIOPARALLEL_EXPORT vtkPDataSetWriter : public vtkDataSetWriter
30{
31public:
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
102protected:
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
119
121
123
125
126 typedef std::map<int, std::vector<int>> ExtentsType;
128
130
131private:
132 vtkPDataSetWriter(const vtkPDataSetWriter&) = delete;
133 void operator=(const vtkPDataSetWriter&) = delete;
134};
135
136VTK_ABI_NAMESPACE_END
137#endif
write any type of vtk dataset to file
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
Multiprocessing communication superclass.
Manages writing pieces of a data set.
ostream * OpenFile()
vtkGetFilePathMacro(FilePattern)
This file pattern uses the file name and piece number to construct a file name for the piece file.
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
static vtkPDataSetWriter * New()
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