VTK
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 =========================================================================*/
47 #ifndef vtkImageReader2_h
48 #define vtkImageReader2_h
49 
50 #include "vtkIOImageModule.h" // For export macro
51 #include "vtkImageAlgorithm.h"
52 
53 class vtkStringArray;
54 
55 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
56 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
57 
58 class VTKIOIMAGE_EXPORT vtkImageReader2 : public vtkImageAlgorithm
59 {
60 public:
61  static vtkImageReader2 *New();
63  void PrintSelf(ostream& os, vtkIndent indent);
64 
66 
70  virtual void SetFileName(const char *);
71  vtkGetStringMacro(FileName);
73 
75 
82  virtual void SetFileNames(vtkStringArray *);
83  vtkGetObjectMacro(FileNames, vtkStringArray);
85 
87 
94  virtual void SetFilePrefix(const char *);
95  vtkGetStringMacro(FilePrefix);
97 
99 
103  virtual void SetFilePattern(const char *);
104  vtkGetStringMacro(FilePattern);
106 
112  virtual void SetMemoryBuffer(void *);
113  virtual void *GetMemoryBuffer() { return this->MemoryBuffer; }
114 
118  virtual void SetMemoryBufferLength(vtkIdType buflen);
119  vtkIdType GetMemoryBufferLength() { return this->MemoryBufferLength; }
120 
126  virtual void SetDataScalarType(int type);
127  virtual void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);}
128  virtual void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);}
129  virtual void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);}
130  virtual void SetDataScalarTypeToUnsignedInt(){this->SetDataScalarType(VTK_UNSIGNED_INT);}
131  virtual void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);}
133  {this->SetDataScalarType(VTK_UNSIGNED_SHORT);}
134  virtual void SetDataScalarTypeToChar()
135  {this->SetDataScalarType(VTK_CHAR);}
137  {this->SetDataScalarType(VTK_SIGNED_CHAR);}
139  {this->SetDataScalarType(VTK_UNSIGNED_CHAR);}
140 
142 
145  vtkGetMacro(DataScalarType, int);
147 
149 
152  vtkSetMacro(NumberOfScalarComponents,int);
153  vtkGetMacro(NumberOfScalarComponents,int);
155 
157 
160  vtkSetVector6Macro(DataExtent,int);
161  vtkGetVector6Macro(DataExtent,int);
163 
165 
168  vtkSetMacro(FileDimensionality, int);
169  int GetFileDimensionality() {return this->FileDimensionality;}
171 
173 
176  vtkSetVector3Macro(DataSpacing,double);
177  vtkGetVector3Macro(DataSpacing,double);
179 
181 
184  vtkSetVector3Macro(DataOrigin,double);
185  vtkGetVector3Macro(DataOrigin,double);
187 
189 
192  unsigned long GetHeaderSize();
193  unsigned long GetHeaderSize(unsigned long slice);
195 
200  virtual void SetHeaderSize(unsigned long size);
201 
203 
218  virtual int GetDataByteOrder();
219  virtual void SetDataByteOrder(int);
220  virtual const char *GetDataByteOrderAsString();
222 
224 
228  vtkSetMacro(FileNameSliceOffset,int);
229  vtkGetMacro(FileNameSliceOffset,int);
231 
233 
238  vtkSetMacro(FileNameSliceSpacing,int);
239  vtkGetMacro(FileNameSliceSpacing,int);
241 
242 
244 
247  vtkSetMacro(SwapBytes,int);
248  virtual int GetSwapBytes() {return this->SwapBytes;}
249  vtkBooleanMacro(SwapBytes,int);
251 
252  ifstream *GetFile() {return this->File;}
253  vtkGetVectorMacro(DataIncrements,unsigned long,4);
254 
255  virtual int OpenFile();
256  virtual void SeekFile(int i, int j, int k);
257 
259 
263  vtkBooleanMacro(FileLowerLeft, int);
264  vtkGetMacro(FileLowerLeft, int);
265  vtkSetMacro(FileLowerLeft, int);
267 
269 
272  virtual void ComputeInternalFileName(int slice);
273  vtkGetStringMacro(InternalFileName);
275 
285  virtual int CanReadFile(const char* vtkNotUsed(fname))
286  {
287  return 0;
288  }
289 
295  virtual const char* GetFileExtensions()
296  {
297  return 0;
298  }
299 
301 
304  virtual const char* GetDescriptiveName()
305  {
306  return 0;
307  }
308 protected:
312 
314 
316  char *FileName;
317  char *FilePrefix;
318  char *FilePattern;
321 
324 
325  ifstream *File;
326  unsigned long DataIncrements[4];
327  int DataExtent[6];
329 
331  unsigned long HeaderSize;
333  unsigned long ManualHeaderSize;
334 
335  double DataSpacing[3];
336  double DataOrigin[3];
337 
340 
341  virtual int RequestInformation(vtkInformation* request,
342  vtkInformationVector** inputVector,
343  vtkInformationVector* outputVector);
344  virtual void ExecuteInformation();
346  virtual void ComputeDataIncrements();
347 private:
348  vtkImageReader2(const vtkImageReader2&) VTK_DELETE_FUNCTION;
349  void operator=(const vtkImageReader2&) VTK_DELETE_FUNCTION;
350 };
351 
352 #endif
general representation of visualization data
Definition: vtkDataObject.h:65
Generic algorithm superclass for image algs.
Superclass of binary file readers.
virtual void ComputeDataIncrements()
virtual void * GetMemoryBuffer()
virtual int CanReadFile(const char *vtkNotUsed(fname))
Return non zero if the reader can read the given file name.
unsigned long GetHeaderSize()
Get the size of the header computed by this object.
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
virtual int GetDataByteOrder()
virtual int OpenFile()
virtual void SetFilePrefix(const char *)
Specify file prefix for the image file or files.
unsigned long GetHeaderSize(unsigned long slice)
virtual void SetMemoryBufferLength(vtkIdType buflen)
Specify the in memory image buffer length.
static vtkImageReader2 * New()
virtual const char * GetFileExtensions()
Get the file extensions for this format.
virtual void SetDataScalarTypeToSignedChar()
virtual void SetMemoryBuffer(void *)
Specify the in memory image buffer.
virtual const char * GetDataByteOrderAsString()
virtual void ComputeInternalFileName(int slice)
Set/Get the internal file name.
virtual void SetDataScalarType(int type)
Set the data type of pixels in the file.
virtual void SetFileName(const char *)
Specify file name for the image file.
virtual void SetDataScalarTypeToInt()
virtual void SetDataScalarTypeToDouble()
ifstream * GetFile()
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetDataScalarTypeToChar()
unsigned long HeaderSize
virtual void SetDataByteOrderToLittleEndian()
vtkIdType MemoryBufferLength
virtual void SetHeaderSize(unsigned long size)
If there is a tail on the file, you want to explicitly set the header size.
virtual void SetFilePattern(const char *)
The sprintf-style format string used to build filename from FilePrefix and slice number.
virtual void SetDataScalarTypeToUnsignedChar()
virtual void SetDataByteOrder(int)
virtual void SetDataByteOrderToBigEndian()
These methods should be used instead of the SwapBytes methods.
unsigned long ManualHeaderSize
virtual void SetDataScalarTypeToFloat()
virtual void SetDataScalarTypeToShort()
virtual void SeekFile(int i, int j, int k)
virtual void SetFileNames(vtkStringArray *)
Specify a list of file names.
virtual void ExecuteDataWithInformation(vtkDataObject *data, vtkInformation *outInfo)
This is a convenience method that is implemented in many subclasses instead of RequestData.
virtual void SetDataScalarTypeToUnsignedShort()
virtual int GetSwapBytes()
vtkStringArray * FileNames
vtkIdType GetMemoryBufferLength()
virtual void SetDataScalarTypeToUnsignedInt()
virtual void ExecuteInformation()
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
a vtkAbstractArray subclass for strings
@ type
Definition: vtkX3D.h:516
@ size
Definition: vtkX3D.h:253
@ data
Definition: vtkX3D.h:315
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
#define VTK_SHORT
Definition: vtkType.h:52
int vtkIdType
Definition: vtkType.h:287
#define VTK_UNSIGNED_INT
Definition: vtkType.h:55
#define VTK_DOUBLE
Definition: vtkType.h:59
#define VTK_UNSIGNED_CHAR
Definition: vtkType.h:51
#define VTK_UNSIGNED_SHORT
Definition: vtkType.h:53
#define VTK_INT
Definition: vtkType.h:54
#define VTK_SIGNED_CHAR
Definition: vtkType.h:50
#define VTK_FLOAT
Definition: vtkType.h:58
#define VTK_CHAR
Definition: vtkType.h:49