00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00032
#ifndef __vtkImageReader_h
00033
#define __vtkImageReader_h
00034
00035
#include "vtkImageReader2.h"
00036
00037
class vtkTransform;
00038
00039 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00040 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00041
00042 class VTK_IO_EXPORT vtkImageReader :
public vtkImageReader2
00043 {
00044
public:
00045
static vtkImageReader *
New();
00046 vtkTypeRevisionMacro(vtkImageReader,
vtkImageReader2);
00047
void PrintSelf(ostream& os,
vtkIndent indent);
00048
00050
00052 vtkSetVector6Macro(DataVOI,
int);
00053 vtkGetVector6Macro(DataVOI,
int);
00055
00057
00058 vtkGetMacro(DataMask,
unsigned short);
00059 void SetDataMask(
int val)
00060 {
if (val == this->DataMask) {
return; }
00061 this->DataMask = ((
unsigned short)(val)); this->
Modified();}
00063
00065
00068
virtual void SetTransform(
vtkTransform*);
00069 vtkGetObjectMacro(Transform,
vtkTransform);
00071
00072
00073
00074
void ComputeInverseTransformedExtent(
int inExtent[6],
00075
int outExtent[6]);
00076
void ComputeInverseTransformedIncrements(
int inIncr[3],
00077
int outIncr[3]);
00078
00079
int OpenAndSeekFile(
int extent[6],
int slice);
00080
00082
00083 vtkSetStringMacro(ScalarArrayName);
00084 vtkGetStringMacro(ScalarArrayName);
00086
00087
protected:
00088 vtkImageReader();
00089 ~vtkImageReader();
00090
00091 unsigned short DataMask;
00092
00093 vtkTransform *Transform;
00094
00095
void ComputeTransformedSpacing (
double Spacing[3]);
00096
void ComputeTransformedOrigin (
double origin[3]);
00097
void ComputeTransformedExtent(
int inExtent[6],
00098
int outExtent[6]);
00099
void ComputeTransformedIncrements(
int inIncr[3],
00100
int outIncr[3]);
00101
00102 int DataVOI[6];
00103
00104 char *ScalarArrayName;
00105
00106
void ExecuteInformation();
00107
void ExecuteData(
vtkDataObject *data);
00108
private:
00109 vtkImageReader(
const vtkImageReader&);
00110
void operator=(
const vtkImageReader&);
00111 };
00112
00113
#endif