VTK  9.7.1
vtkPNrrdReader.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 
28 #ifndef vtkPNrrdReader_h
29 #define vtkPNrrdReader_h
30 
31 #include "vtkIOMPIImageModule.h" // For export macro
32 #include "vtkNrrdReader.h"
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkCharArray;
37 class vtkMPIOpaqueFileHandle;
38 
39 class VTKIOMPIIMAGE_EXPORT vtkPNrrdReader : public vtkNrrdReader
40 {
41 public:
42  vtkTypeMacro(vtkPNrrdReader, vtkNrrdReader);
43  static vtkPNrrdReader* New();
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
47 
51  vtkGetObjectMacro(Controller, vtkMultiProcessController);
52  virtual void SetController(vtkMultiProcessController*);
54 
55 protected:
57  ~vtkPNrrdReader() override;
58 
59  int ReadHeader() override;
60  int ReadHeader(vtkCharArray* headerBuffer) override;
61 
65  int GetDataScalarTypeSize();
66 
72  virtual void PartitionController(const int extent[6]);
73 
78  virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle& file);
79 
86  virtual void SetupFileView(vtkMPIOpaqueFileHandle& file, const int extent[6]);
87 
94  virtual void ReadSlice(int slice, const int extent[6], void* buffer);
95 
100  virtual void TransformData(vtkImageData* data);
101 
103 
107  void SetGroupedController(vtkMultiProcessController*);
110 
112 
114 
115 private:
116  vtkPNrrdReader(const vtkPNrrdReader&) = delete;
117  void operator=(const vtkPNrrdReader&) = delete;
118 };
119 
120 VTK_ABI_NAMESPACE_END
121 #endif // vtkPNrrdReader_h
Read nrrd files efficiently from parallel file systems (and reasonably well elsewhere).
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.
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:44
a simple class to control print indentation
Definition: vtkIndent.h:28
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkMultiProcessController * Controller
Read nrrd files file system.
Definition: vtkNrrdReader.h:35
virtual int ReadHeader()
void ExecuteDataWithInformation(vtkDataObject *data, vtkInformation *outInfo) override
This is a convenience method that is implemented in many subclasses instead of RequestData.
static vtkNrrdReader * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
general representation of visualization data
Definition: vtkDataObject.h:55
Multiprocessing communication superclass.