VTK  9.2.6
vtkPNrrdReader.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkPNrrdReader.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 /*----------------------------------------------------------------------------
17  Copyright (c) Sandia Corporation
18  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
19 ----------------------------------------------------------------------------*/
20 
43 #ifndef vtkPNrrdReader_h
44 #define vtkPNrrdReader_h
45 
46 #include "vtkIOMPIImageModule.h" // For export macro
47 #include "vtkNrrdReader.h"
48 
49 class vtkCharArray;
51 class vtkMPIOpaqueFileHandle;
52 
53 class VTKIOMPIIMAGE_EXPORT vtkPNrrdReader : public vtkNrrdReader
54 {
55 public:
56  vtkTypeMacro(vtkPNrrdReader, vtkNrrdReader);
57  static vtkPNrrdReader* New();
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59 
61 
65  vtkGetObjectMacro(Controller, vtkMultiProcessController);
68 
69 protected:
71  ~vtkPNrrdReader() override;
72 
73  int ReadHeader() override;
74  int ReadHeader(vtkCharArray* headerBuffer) override;
75 
80 
86  virtual void PartitionController(const int extent[6]);
87 
92  virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle& file);
93 
100  virtual void SetupFileView(vtkMPIOpaqueFileHandle& file, const int extent[6]);
101 
108  virtual void ReadSlice(int slice, const int extent[6], void* buffer);
109 
115 
117 
124 
126 
128 
129 private:
130  vtkPNrrdReader(const vtkPNrrdReader&) = delete;
131  void operator=(const vtkPNrrdReader&) = delete;
132 };
133 
134 #endif // vtkPNrrdReader_h
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:71
general representation of visualization data
topologically and geometrically regular array of data
Definition: vtkImageData.h:163
a simple class to control print indentation
Definition: vtkIndent.h:119
Store vtkAlgorithm input/output information.
Multiprocessing communication superclass.
Read nrrd files file system.
Definition: vtkNrrdReader.h:51
Read nrrd files efficiently from parallel file systems (and reasonably well elsewhere).
virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle &file)
Get the header size of the given open file.
vtkMultiProcessController * Controller
int ReadHeader(vtkCharArray *headerBuffer) override
int ReadHeader() override
virtual void ReadSlice(int slice, const int extent[6], void *buffer)
Given a slice of the data, open the appropriate file, read the data into given buffer,...
~vtkPNrrdReader() override
virtual void PartitionController(const int extent[6])
Break up the controller based on the files each process reads.
virtual void SetupFileView(vtkMPIOpaqueFileHandle &file, const int extent[6])
Set up a "view" on the open file that will allow you to read the 2D or 3D subarray from the file in o...
virtual void TransformData(vtkImageData *data)
Transform the data from the order read from a file to the order to place in the output data (as defin...
static vtkPNrrdReader * New()
int GetDataScalarTypeSize()
Returns the size, in bytes of the scalar data type (GetDataScalarType).
void SetGroupedController(vtkMultiProcessController *)
A group of processes that are reading the same file (as determined by PartitionController.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMultiProcessController * GroupedController
A group of processes that are reading the same file (as determined by PartitionController.
virtual void SetController(vtkMultiProcessController *)
Get/set the multi process controller to use for coordinated reads.
void ExecuteDataWithInformation(vtkDataObject *data, vtkInformation *outInfo) override
This is a convenience method that is implemented in many subclasses instead of RequestData.
@ extent
Definition: vtkX3D.h:351
@ data
Definition: vtkX3D.h:321