VTK  9.1.0
vtkImageReader2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageReader2.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
150 #ifndef vtkImageReader2_h
151 #define vtkImageReader2_h
152 
153 #include "vtkIOImageModule.h" // For export macro
154 #include "vtkImageAlgorithm.h"
155 
156 class vtkStringArray;
157 
158 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
159 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
160 
161 class VTKIOIMAGE_EXPORT vtkImageReader2 : public vtkImageAlgorithm
162 {
163 public:
164  static vtkImageReader2* New();
166  void PrintSelf(ostream& os, vtkIndent indent) override;
167 
169 
173  virtual void SetFileName(VTK_FILEPATH const char*);
176 
178 
185  virtual void SetFileNames(vtkStringArray*);
186  vtkGetObjectMacro(FileNames, vtkStringArray);
188 
190 
197  virtual void SetFilePrefix(VTK_FILEPATH const char*);
198  vtkGetFilePathMacro(FilePrefix);
200 
202 
206  virtual void SetFilePattern(VTK_FILEPATH const char*);
207  vtkGetFilePathMacro(FilePattern);
209 
215  virtual void SetMemoryBuffer(const void*);
216  virtual const void* GetMemoryBuffer() { return this->MemoryBuffer; }
217 
221  virtual void SetMemoryBufferLength(vtkIdType buflen);
222  vtkIdType GetMemoryBufferLength() { return this->MemoryBufferLength; }
223 
229  virtual void SetDataScalarType(int type);
230  virtual void SetDataScalarTypeToFloat() { this->SetDataScalarType(VTK_FLOAT); }
231  virtual void SetDataScalarTypeToDouble() { this->SetDataScalarType(VTK_DOUBLE); }
232  virtual void SetDataScalarTypeToInt() { this->SetDataScalarType(VTK_INT); }
233  virtual void SetDataScalarTypeToUnsignedInt() { this->SetDataScalarType(VTK_UNSIGNED_INT); }
234  virtual void SetDataScalarTypeToShort() { this->SetDataScalarType(VTK_SHORT); }
235  virtual void SetDataScalarTypeToUnsignedShort() { this->SetDataScalarType(VTK_UNSIGNED_SHORT); }
236  virtual void SetDataScalarTypeToChar() { this->SetDataScalarType(VTK_CHAR); }
237  virtual void SetDataScalarTypeToSignedChar() { this->SetDataScalarType(VTK_SIGNED_CHAR); }
238  virtual void SetDataScalarTypeToUnsignedChar() { this->SetDataScalarType(VTK_UNSIGNED_CHAR); }
239 
241 
244  vtkGetMacro(DataScalarType, int);
246 
248 
251  vtkSetMacro(NumberOfScalarComponents, int);
252  vtkGetMacro(NumberOfScalarComponents, int);
254 
256 
259  vtkSetVector6Macro(DataExtent, int);
260  vtkGetVector6Macro(DataExtent, int);
262 
264 
267  vtkSetMacro(FileDimensionality, int);
268  int GetFileDimensionality() { return this->FileDimensionality; }
270 
272 
275  vtkSetVector3Macro(DataSpacing, double);
276  vtkGetVector3Macro(DataSpacing, double);
278 
280 
283  vtkSetVector3Macro(DataOrigin, double);
284  vtkGetVector3Macro(DataOrigin, double);
286 
288 
291  vtkSetVectorMacro(DataDirection, double, 9);
292  vtkGetVectorMacro(DataDirection, double, 9);
294 
296 
299  unsigned long GetHeaderSize();
300  unsigned long GetHeaderSize(unsigned long slice);
302 
307  virtual void SetHeaderSize(unsigned long size);
308 
310 
325  virtual int GetDataByteOrder();
326  virtual void SetDataByteOrder(int);
327  virtual const char* GetDataByteOrderAsString();
329 
331 
335  vtkSetMacro(FileNameSliceOffset, int);
336  vtkGetMacro(FileNameSliceOffset, int);
338 
340 
345  vtkSetMacro(FileNameSliceSpacing, int);
346  vtkGetMacro(FileNameSliceSpacing, int);
348 
350 
353  vtkSetMacro(SwapBytes, vtkTypeBool);
354  virtual vtkTypeBool GetSwapBytes() { return this->SwapBytes; }
355  vtkBooleanMacro(SwapBytes, vtkTypeBool);
357 
358  istream* GetFile() { return this->File; }
359  vtkGetVectorMacro(DataIncrements, unsigned long, 4);
360 
361  virtual int OpenFile();
362  void CloseFile();
363  virtual void SeekFile(int i, int j, int k);
364 
366 
370  vtkBooleanMacro(FileLowerLeft, vtkTypeBool);
371  vtkGetMacro(FileLowerLeft, vtkTypeBool);
372  vtkSetMacro(FileLowerLeft, vtkTypeBool);
374 
376 
379  virtual void ComputeInternalFileName(int slice);
380  vtkGetFilePathMacro(InternalFileName);
382 
392  virtual int CanReadFile(VTK_FILEPATH const char* vtkNotUsed(fname)) { return 0; }
393 
399  virtual const char* GetFileExtensions() { return nullptr; }
400 
402 
405  virtual const char* GetDescriptiveName() { return nullptr; }
406 
407 protected:
409  ~vtkImageReader2() override;
411 
413 
415  char* FileName;
416  char* FilePrefix;
417  char* FilePattern;
420 
421  const void* MemoryBuffer;
423 
424  istream* File;
425  unsigned long DataIncrements[4];
426  int DataExtent[6];
428 
430  unsigned long HeaderSize;
432  unsigned long ManualHeaderSize;
433 
434  double DataSpacing[3];
435  double DataOrigin[3];
436  double DataDirection[9];
437 
440 
442  vtkInformationVector* outputVector) override;
443  virtual void ExecuteInformation();
445  virtual void ComputeDataIncrements();
446 
447 private:
448  vtkImageReader2(const vtkImageReader2&) = delete;
449  void operator=(const vtkImageReader2&) = delete;
450 };
451 
452 #endif
vtkImageReader2::OpenFile
virtual int OpenFile()
vtkImageReader2::FileName
char * FileName
Definition: vtkImageReader2.h:415
vtkImageReader2::SetDataByteOrder
virtual void SetDataByteOrder(int)
These methods should be used instead of the SwapBytes methods.
vtkImageReader2::ComputeInternalFileName
virtual void ComputeInternalFileName(int slice)
Set/Get the internal file name.
vtkImageReader2::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkImageReader2::FileLowerLeft
vtkTypeBool FileLowerLeft
Definition: vtkImageReader2.h:419
vtkImageReader2::GetDataByteOrderAsString
virtual const char * GetDataByteOrderAsString()
These methods should be used instead of the SwapBytes methods.
vtkImageReader2::MemoryBuffer
const void * MemoryBuffer
Definition: vtkImageReader2.h:421
vtkImageReader2::ExecuteDataWithInformation
void ExecuteDataWithInformation(vtkDataObject *data, vtkInformation *outInfo) override
This is a convenience method that is implemented in many subclasses instead of RequestData.
vtkImageReader2::ComputeDataIncrements
virtual void ComputeDataIncrements()
VTK_FILEPATH
#define VTK_FILEPATH
Definition: vtkWrappingHints.h:46
vtkImageReader2::SetFilePrefix
virtual void SetFilePrefix(VTK_FILEPATH const char *)
Specify file prefix for the image file or files.
vtkX3D::type
@ type
Definition: vtkX3D.h:522
vtkIdType
int vtkIdType
Definition: vtkType.h:332
VTK_UNSIGNED_INT
#define VTK_UNSIGNED_INT
Definition: vtkType.h:51
vtkImageReader2::SetDataScalarTypeToUnsignedInt
virtual void SetDataScalarTypeToUnsignedInt()
Definition: vtkImageReader2.h:233
vtkX3D::data
@ data
Definition: vtkX3D.h:321
vtkImageReader2::SetDataScalarTypeToChar
virtual void SetDataScalarTypeToChar()
Definition: vtkImageReader2.h:236
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:145
VTK_UNSIGNED_SHORT
#define VTK_UNSIGNED_SHORT
Definition: vtkType.h:49
vtkImageReader2::SetDataScalarTypeToFloat
virtual void SetDataScalarTypeToFloat()
Definition: vtkImageReader2.h:230
vtkImageReader2::vtkGetFilePathMacro
vtkGetFilePathMacro(FilePattern)
The snprintf-style format string used to build filename from FilePrefix and slice number.
vtkImageReader2::FilePrefix
char * FilePrefix
Definition: vtkImageReader2.h:416
vtkImageReader2::GetHeaderSize
unsigned long GetHeaderSize(unsigned long slice)
Get the size of the header computed by this object.
vtkImageReader2::SwapBytes
vtkTypeBool SwapBytes
Definition: vtkImageReader2.h:427
vtkImageReader2::~vtkImageReader2
~vtkImageReader2() override
Return a descriptive name for the file format that might be useful in a GUI.
vtkImageAlgorithm.h
vtkImageReader2::SetHeaderSize
virtual void SetHeaderSize(unsigned long size)
If there is a tail on the file, you want to explicitly set the header size.
vtkImageReader2::GetFileExtensions
virtual const char * GetFileExtensions()
Get the file extensions for this format.
Definition: vtkImageReader2.h:399
vtkImageReader2::SetDataScalarTypeToUnsignedShort
virtual void SetDataScalarTypeToUnsignedShort()
Definition: vtkImageReader2.h:235
vtkImageReader2::DataScalarType
int DataScalarType
Definition: vtkImageReader2.h:431
vtkImageAlgorithm
Generic algorithm superclass for image algs.
Definition: vtkImageAlgorithm.h:57
vtkImageReader2::GetMemoryBuffer
virtual const void * GetMemoryBuffer()
Definition: vtkImageReader2.h:216
vtkImageReader2::FilePattern
char * FilePattern
Definition: vtkImageReader2.h:417
vtkImageReader2::RequestInformation
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
vtkImageReader2::SetFileNames
virtual void SetFileNames(vtkStringArray *)
Specify a list of file names.
vtkImageReader2::FileDimensionality
int FileDimensionality
Definition: vtkImageReader2.h:429
vtkImageReader2::GetFile
istream * GetFile()
Definition: vtkImageReader2.h:358
vtkImageReader2::File
istream * File
Definition: vtkImageReader2.h:424
vtkImageReader2::SetMemoryBufferLength
virtual void SetMemoryBufferLength(vtkIdType buflen)
Specify the in memory image buffer length.
vtkImageReader2::New
static vtkImageReader2 * New()
vtkImageReader2::SetDataByteOrderToBigEndian
virtual void SetDataByteOrderToBigEndian()
These methods should be used instead of the SwapBytes methods.
vtkImageReader2::SetFilePattern
virtual void SetFilePattern(VTK_FILEPATH const char *)
The snprintf-style format string used to build filename from FilePrefix and slice number.
vtkImageReader2::CloseFile
void CloseFile()
vtkImageReader2::FileNameSliceSpacing
int FileNameSliceSpacing
Definition: vtkImageReader2.h:439
VTK_CHAR
#define VTK_CHAR
Definition: vtkType.h:45
vtkImageReader2::MemoryBufferLength
vtkIdType MemoryBufferLength
Definition: vtkImageReader2.h:422
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkImageReader2::InternalFileName
char * InternalFileName
Definition: vtkImageReader2.h:414
VTK_FLOAT
#define VTK_FLOAT
Definition: vtkType.h:54
VTK_DOUBLE
#define VTK_DOUBLE
Definition: vtkType.h:55
VTK_UNSIGNED_CHAR
#define VTK_UNSIGNED_CHAR
Definition: vtkType.h:47
vtkImageReader2::GetDescriptiveName
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
Definition: vtkImageReader2.h:405
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkImageReader2
Superclass of binary file readers.
Definition: vtkImageReader2.h:162
vtkImageReader2::vtkImageReader2
vtkImageReader2()
Return a descriptive name for the file format that might be useful in a GUI.
vtkImageReader2::SetDataScalarTypeToShort
virtual void SetDataScalarTypeToShort()
Definition: vtkImageReader2.h:234
vtkImageReader2::SeekFile
virtual void SeekFile(int i, int j, int k)
vtkImageReader2::SetDataScalarTypeToSignedChar
virtual void SetDataScalarTypeToSignedChar()
Definition: vtkImageReader2.h:237
vtkImageReader2::GetSwapBytes
virtual vtkTypeBool GetSwapBytes()
Set/Get the byte swapping to explicitly swap the bytes of a file.
Definition: vtkImageReader2.h:354
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkImageReader2::GetFileDimensionality
int GetFileDimensionality()
The number of dimensions stored in a file.
Definition: vtkImageReader2.h:268
vtkImageReader2::SetDataScalarTypeToUnsignedChar
virtual void SetDataScalarTypeToUnsignedChar()
Definition: vtkImageReader2.h:238
VTK_SHORT
#define VTK_SHORT
Definition: vtkType.h:48
vtkImageReader2::SetDataScalarType
virtual void SetDataScalarType(int type)
Set the data type of pixels in the file.
vtkImageReader2::GetHeaderSize
unsigned long GetHeaderSize()
Get the size of the header computed by this object.
vtkImageReader2::vtkGetFilePathMacro
vtkGetFilePathMacro(FilePrefix)
Specify file prefix for the image file or files.
vtkImageReader2::HeaderSize
unsigned long HeaderSize
Definition: vtkImageReader2.h:430
VTK_SIGNED_CHAR
#define VTK_SIGNED_CHAR
Definition: vtkType.h:46
vtkImageReader2::SetDataByteOrderToLittleEndian
virtual void SetDataByteOrderToLittleEndian()
These methods should be used instead of the SwapBytes methods.
vtkImageReader2::vtkGetFilePathMacro
vtkGetFilePathMacro(FileName)
Specify file name for the image file.
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:146
vtkImageReader2::ExecuteInformation
virtual void ExecuteInformation()
vtkImageReader2::FileNames
vtkStringArray * FileNames
Definition: vtkImageReader2.h:412
vtkImageReader2::NumberOfScalarComponents
int NumberOfScalarComponents
Definition: vtkImageReader2.h:418
vtkImageReader2::SetDataScalarTypeToDouble
virtual void SetDataScalarTypeToDouble()
Definition: vtkImageReader2.h:231
VTK_INT
#define VTK_INT
Definition: vtkType.h:50
vtkImageReader2::FileNameSliceOffset
int FileNameSliceOffset
Definition: vtkImageReader2.h:438
vtkImageReader2::GetDataByteOrder
virtual int GetDataByteOrder()
These methods should be used instead of the SwapBytes methods.
vtkImageReader2::ManualHeaderSize
unsigned long ManualHeaderSize
Definition: vtkImageReader2.h:432
vtkImageReader2::SetMemoryBuffer
virtual void SetMemoryBuffer(const void *)
Specify the in memory image buffer.
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:169
vtkImageReader2::vtkGetFilePathMacro
vtkGetFilePathMacro(InternalFileName)
Set/Get the internal file name.
vtkImageReader2::GetMemoryBufferLength
vtkIdType GetMemoryBufferLength()
Definition: vtkImageReader2.h:222
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkImageReader2::SetFileName
virtual void SetFileName(VTK_FILEPATH const char *)
Specify file name for the image file.
vtkImageReader2::SetDataScalarTypeToInt
virtual void SetDataScalarTypeToInt()
Definition: vtkImageReader2.h:232
vtkImageReader2::CanReadFile
virtual int CanReadFile(VTK_FILEPATH const char *vtkNotUsed(fname))
Return non zero if the reader can read the given file name.
Definition: vtkImageReader2.h:392