Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
IO/vtkVolume16Reader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00069 #ifndef __vtkVolume16Reader_h
00070 #define __vtkVolume16Reader_h
00071
00072 #include "vtkVolumeReader.h"
00073
00074 class vtkTransform;
00075 class vtkUnsignedCharArray;
00076 class vtkUnsignedShortArray;
00077
00078 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00079 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00080
00081 class VTK_IO_EXPORT vtkVolume16Reader : public vtkVolumeReader
00082 {
00083 public:
00084 vtkTypeRevisionMacro(vtkVolume16Reader,vtkVolumeReader);
00085 void PrintSelf(ostream& os, vtkIndent indent);
00086
00090 static vtkVolume16Reader *New();
00091
00093
00094 vtkSetVector2Macro(DataDimensions,int);
00095 vtkGetVectorMacro(DataDimensions,int,2);
00097
00099
00101 vtkSetMacro(DataMask,unsigned short);
00102 vtkGetMacro(DataMask,unsigned short);
00104
00106
00107 vtkSetMacro(HeaderSize,int);
00108 vtkGetMacro(HeaderSize,int);
00110
00112
00122 void SetDataByteOrderToBigEndian();
00123 void SetDataByteOrderToLittleEndian();
00124 int GetDataByteOrder();
00125 void SetDataByteOrder(int);
00126 const char *GetDataByteOrderAsString();
00128
00130
00131 vtkSetMacro(SwapBytes,int);
00132 vtkGetMacro(SwapBytes,int);
00133 vtkBooleanMacro(SwapBytes,int);
00135
00137
00140 virtual void SetTransform(vtkTransform*);
00141 vtkGetObjectMacro(Transform,vtkTransform);
00143
00145 vtkImageData *GetImage(int ImageNumber);
00146
00147 protected:
00148 vtkVolume16Reader();
00149 ~vtkVolume16Reader();
00150
00151 virtual void ExecuteData(vtkDataObject *);
00152 virtual void ExecuteInformation();
00153 int DataDimensions[2];
00154 unsigned short DataMask;
00155 int SwapBytes;
00156 int HeaderSize;
00157 vtkTransform *Transform;
00158
00159 void TransformSlice (unsigned short *slice, unsigned short *pixels, int k, int dimensions[3], int bounds[3]);
00160 void ComputeTransformedDimensions(int dimensions[3]);
00161 void ComputeTransformedBounds(int bounds[6]);
00162 void ComputeTransformedSpacing(float Spacing[3]);
00163 void ComputeTransformedOrigin(float origin[3]);
00164 void AdjustSpacingAndOrigin(int dimensions[3], float Spacing[3], float origin[3]);
00165 void ReadImage(int ImageNumber, vtkUnsignedShortArray *);
00166 void ReadVolume(int FirstImage, int LastImage, vtkUnsignedShortArray *);
00167 int Read16BitImage(FILE *fp, unsigned short *pixels, int xsize, int ysize,
00168 int skip, int swapBytes);
00169
00170 private:
00171 vtkVolume16Reader(const vtkVolume16Reader&);
00172 void operator=(const vtkVolume16Reader&);
00173 };
00174
00175 #endif
00176
00177