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
53class vtkStringArray;
54
55#define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
56#define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
57
58class VTKIOIMAGE_EXPORT vtkImageReader2 : public vtkImageAlgorithm
59{
60public:
63 void PrintSelf(ostream& os, vtkIndent indent);
64
66
70 virtual void SetFileName(const char *);
73
75
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);}
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 }
308protected:
312
314
316 char *FileName;
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();
347private:
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 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.
virtual void SetDataScalarTypeToSignedChar()
virtual const char * GetDataByteOrderAsString()
virtual void SetMemoryBuffer(void *)
Specify the in memory image buffer.
virtual void ComputeInternalFileName(int slice)
Set/Get the internal file name.
virtual void * GetMemoryBuffer()
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 const char * GetFileExtensions()
Get the file extensions for this format.
virtual void SetDataScalarTypeToDouble()
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
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)
static vtkImageReader2 * New()
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)
ifstream * GetFile()
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()
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