VTK  9.7.1
vtkImageReader2.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
35 #ifndef vtkImageReader2_h
36 #define vtkImageReader2_h
37 
38 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_6_0
39 #include "vtkIOImageModule.h" // For export macro
40 #include "vtkImageAlgorithm.h"
41 #include "vtkResourceStream.h" // For stream
42 #include "vtkSmartPointer.h" // For smart pointer
43 
44 VTK_ABI_NAMESPACE_BEGIN
45 class vtkStringArray;
46 class vtkResourceStream;
47 
48 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
49 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
50 
51 class VTKIOIMAGE_EXPORT vtkImageReader2 : public vtkImageAlgorithm
52 {
53 public:
54  static vtkImageReader2* New();
56  void PrintSelf(ostream& os, vtkIndent indent) override;
57 
59 
63  virtual void SetFileName(VTK_FILEPATH const char*);
64  vtkGetFilePathMacro(FileName);
66 
68 
75  virtual void SetFileNames(vtkStringArray*);
76  vtkGetObjectMacro(FileNames, vtkStringArray);
78 
80 
87  vtkSetFilePathMacro(FilePrefix);
88  vtkGetFilePathMacro(FilePrefix);
90 
92 
96  virtual void SetFilePattern(VTK_FILEPATH const char*);
97  vtkGetFilePathMacro(FilePattern);
99 
101 
106  vtkSetSmartPointerMacro(Stream, vtkResourceStream);
107  vtkGetSmartPointerMacro(Stream, vtkResourceStream);
109 
111 
117  VTK_DEPRECATED_IN_9_6_0("Use SetStream instead")
118  virtual void SetMemoryBuffer(const void*);
119  VTK_DEPRECATED_IN_9_6_0("Use GetStream instead")
120  virtual const void* GetMemoryBuffer();
122 
124 
127  VTK_DEPRECATED_IN_9_6_0("Use SetStream instead")
128  virtual void SetMemoryBufferLength(vtkIdType buflen);
129  VTK_DEPRECATED_IN_9_6_0("Use GetStream instead")
130  vtkIdType GetMemoryBufferLength();
132 
138  virtual void SetDataScalarType(int type);
139  virtual void SetDataScalarTypeToFloat() { this->SetDataScalarType(VTK_FLOAT); }
140  virtual void SetDataScalarTypeToDouble() { this->SetDataScalarType(VTK_DOUBLE); }
141  virtual void SetDataScalarTypeToInt() { this->SetDataScalarType(VTK_INT); }
142  virtual void SetDataScalarTypeToUnsignedInt() { this->SetDataScalarType(VTK_UNSIGNED_INT); }
143  virtual void SetDataScalarTypeToShort() { this->SetDataScalarType(VTK_SHORT); }
144  virtual void SetDataScalarTypeToUnsignedShort() { this->SetDataScalarType(VTK_UNSIGNED_SHORT); }
145  virtual void SetDataScalarTypeToChar() { this->SetDataScalarType(VTK_CHAR); }
146  virtual void SetDataScalarTypeToSignedChar() { this->SetDataScalarType(VTK_SIGNED_CHAR); }
147  virtual void SetDataScalarTypeToUnsignedChar() { this->SetDataScalarType(VTK_UNSIGNED_CHAR); }
148 
150 
153  vtkGetMacro(DataScalarType, int);
155 
157 
160  vtkSetMacro(NumberOfScalarComponents, int);
161  vtkGetMacro(NumberOfScalarComponents, int);
163 
165 
168  vtkSetVector6Macro(DataExtent, int);
169  vtkGetVector6Macro(DataExtent, int);
171 
173 
176  vtkSetMacro(FileDimensionality, int);
177  int GetFileDimensionality() { return this->FileDimensionality; }
179 
181 
184  vtkSetVector3Macro(DataSpacing, double);
185  vtkGetVector3Macro(DataSpacing, double);
187 
189 
192  vtkSetVector3Macro(DataOrigin, double);
193  vtkGetVector3Macro(DataOrigin, double);
195 
197 
200  vtkSetVectorMacro(DataDirection, double, 9);
201  vtkGetVectorMacro(DataDirection, double, 9);
203 
205 
208  unsigned long GetHeaderSize();
209  unsigned long GetHeaderSize(unsigned long slice);
211 
216  virtual void SetHeaderSize(unsigned long size);
217 
219 
232  virtual void SetDataByteOrderToBigEndian();
233  virtual void SetDataByteOrderToLittleEndian();
234  virtual int GetDataByteOrder();
235  virtual void SetDataByteOrder(int);
236  virtual const char* GetDataByteOrderAsString();
238 
240 
244  vtkSetMacro(FileNameSliceOffset, int);
245  vtkGetMacro(FileNameSliceOffset, int);
247 
249 
254  vtkSetMacro(FileNameSliceSpacing, int);
255  vtkGetMacro(FileNameSliceSpacing, int);
257 
259 
262  vtkSetMacro(SwapBytes, vtkTypeBool);
263  virtual vtkTypeBool GetSwapBytes() { return this->SwapBytes; }
264  vtkBooleanMacro(SwapBytes, vtkTypeBool);
266 
267  istream* GetFile() { return this->File; }
268  vtkGetVectorMacro(DataIncrements, unsigned long, 4);
269 
270  virtual int OpenFile();
271  void CloseFile();
272  virtual void SeekFile(int i, int j, int k);
273 
275 
279  vtkBooleanMacro(FileLowerLeft, vtkTypeBool);
280  vtkGetMacro(FileLowerLeft, vtkTypeBool);
281  vtkSetMacro(FileLowerLeft, vtkTypeBool);
283 
285 
288  virtual void ComputeInternalFileName(int slice);
289  vtkGetFilePathMacro(InternalFileName);
291 
293 
304  virtual int CanReadFile(VTK_FILEPATH const char* vtkNotUsed(fname)) { return 0; }
305  virtual int CanReadFile(vtkResourceStream* vtkNotUsed(stream)) { return 0; }
307 
313  virtual const char* GetFileExtensions() { return nullptr; }
314 
316 
319  virtual const char* GetDescriptiveName() { return nullptr; }
320 
324  vtkMTimeType GetMTime() override;
325 
326 protected:
327  vtkImageReader2();
328  ~vtkImageReader2() override;
330 
332 
334  char* FileName;
335  char* FilePrefix;
336  char* FilePattern;
339 
340  VTK_DEPRECATED_IN_9_6_0("Use GetStream instead")
341  const void* MemoryBuffer;
342 
343  VTK_DEPRECATED_IN_9_6_0("Use GetStream instead")
344  vtkIdType MemoryBufferLength;
345 
346  istream* File;
347  unsigned long DataIncrements[4];
348  int DataExtent[6];
349  vtkTypeBool SwapBytes;
350 
351  int FileDimensionality;
352  unsigned long HeaderSize;
353  int DataScalarType;
354  unsigned long ManualHeaderSize;
355 
356  double DataSpacing[3];
357  double DataOrigin[3];
358  double DataDirection[9];
359 
360  int FileNameSliceOffset;
361  int FileNameSliceSpacing;
362 
363  int RequestInformation(vtkInformation* request, vtkInformationVector** inputVector,
364  vtkInformationVector* outputVector) override;
365  virtual void ExecuteInformation();
366  void ExecuteDataWithInformation(vtkDataObject* data, vtkInformation* outInfo) override;
367  virtual void ComputeDataIncrements();
368 
369 private:
370  vtkImageReader2(const vtkImageReader2&) = delete;
371  void operator=(const vtkImageReader2&) = delete;
372 
374 };
375 
376 VTK_ABI_NAMESPACE_END
377 #endif
#define VTK_UNSIGNED_INT
Definition: vtkType.h:40
Abstract class used for custom streams.
istream * GetFile()
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:318
#define VTK_UNSIGNED_SHORT
Definition: vtkType.h:38
int GetFileDimensionality()
The number of dimensions stored in a file.
virtual void SetDataScalarTypeToUnsignedChar()
a vtkAbstractArray subclass for strings
Hold a reference to a vtkObjectBase instance.
Definition: vtkMeta.h:23
int vtkIdType
Definition: vtkType.h:363
virtual int CanReadFile(vtkResourceStream *stream)
Return non zero if the reader can read the given file name.
int vtkTypeBool
Definition: vtkABI.h:64
#define VTK_DOUBLE
Definition: vtkType.h:44
#define VTK_FLOAT
Definition: vtkType.h:43
#define VTK_DEPRECATED_IN_9_6_0(reason)
virtual void SetDataScalarTypeToChar()
virtual void SetDataScalarTypeToShort()
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual void SetDataScalarTypeToSignedChar()
virtual vtkTypeBool GetSwapBytes()
Set/Get the byte swapping to explicitly swap the bytes of a file.
virtual void SetDataScalarTypeToUnsignedShort()
virtual vtkMTimeType GetMTime()
Return this object's modified time.
#define VTK_SHORT
Definition: vtkType.h:37
#define VTK_CHAR
Definition: vtkType.h:34
vtkTypeBool FileLowerLeft
virtual void SetDataScalarTypeToUnsignedInt()
Superclass of binary file readers.
virtual void SetDataScalarTypeToInt()
#define VTK_SIGNED_CHAR
Definition: vtkType.h:35
#define VTK_FILEPATH
#define VTK_UNSIGNED_CHAR
Definition: vtkType.h:36
virtual void SetDataScalarTypeToDouble()
virtual int CanReadFile(const char *fname)
Return non zero if the reader can read the given file name.
virtual const char * GetFileExtensions()
Get the file extensions for this format.
Generic algorithm superclass for image algs.
Store zero or more vtkInformation instances.
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
general representation of visualization data
Definition: vtkDataObject.h:55
#define VTK_INT
Definition: vtkType.h:39
vtkStringArray * FileNames