VTK  9.7.1
vtkMPIImageReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
4 
37 #ifndef vtkMPIImageReader_h
38 #define vtkMPIImageReader_h
39 
40 #include "vtkIOMPIImageModule.h" // For export macro
41 #include "vtkImageReader.h"
42 
43 VTK_ABI_NAMESPACE_BEGIN
44 class vtkMPIOpaqueFileHandle;
46 
47 class VTKIOMPIIMAGE_EXPORT vtkMPIImageReader : public vtkImageReader
48 {
49 public:
51  static vtkMPIImageReader* New();
52  void PrintSelf(ostream& os, vtkIndent indent) override;
53 
55 
59  vtkGetObjectMacro(Controller, vtkMultiProcessController);
60  virtual void SetController(vtkMultiProcessController*);
62 
63 protected:
65  ~vtkMPIImageReader() override;
66 
68 
72  int GetDataScalarTypeSize();
73 
79  virtual void PartitionController(const int extent[6]);
80 
85  virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle& file);
86 
93  virtual void SetupFileView(vtkMPIOpaqueFileHandle& file, const int extent[6]);
94 
101  virtual void ReadSlice(int slice, const int extent[6], void* buffer);
102 
107  virtual void TransformData(vtkImageData* data);
108 
110 
114  void SetGroupedController(vtkMultiProcessController*);
117 
119 
120 private:
121  vtkMPIImageReader(const vtkMPIImageReader&) = delete;
122  void operator=(const vtkMPIImageReader&) = delete;
123 };
124 
125 VTK_ABI_NAMESPACE_END
126 #endif // vtkMPIImageReader_h
Store vtkAlgorithm input/output information.
vtkMultiProcessController * GroupedController
A group of processes that are reading the same file (as determined by PartitionController.
unsigned long GetHeaderSize()
Get the size of the header computed by this object.
static vtkImageReader * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMPIImageReader provides the mechanism to read a brick of bytes (or shorts, or ints, or floats, or doubles, ...) from a file or series of files.
a simple class to control print indentation
Definition: vtkIndent.h:28
Superclass of transformable binary file readers.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkMultiProcessController * Controller
void ExecuteDataWithInformation(vtkDataObject *data, vtkInformation *outInfo) override
This is a convenience method that is implemented in many subclasses instead of RequestData.
general representation of visualization data
Definition: vtkDataObject.h:55
Multiprocessing communication superclass.