vtkVolume16Reader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00057 #ifndef __vtkVolume16Reader_h
00058 #define __vtkVolume16Reader_h
00059
00060 #include "vtkVolumeReader.h"
00061
00062 class vtkTransform;
00063 class vtkUnsignedCharArray;
00064 class vtkUnsignedShortArray;
00065
00066 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00067 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00068
00069 class VTK_IO_EXPORT vtkVolume16Reader : public vtkVolumeReader
00070 {
00071 public:
00072 vtkTypeRevisionMacro(vtkVolume16Reader,vtkVolumeReader);
00073 void PrintSelf(ostream& os, vtkIndent indent);
00074
00078 static vtkVolume16Reader *New();
00079
00081
00082 vtkSetVector2Macro(DataDimensions,int);
00083 vtkGetVectorMacro(DataDimensions,int,2);
00085
00087
00089 vtkSetMacro(DataMask,unsigned short);
00090 vtkGetMacro(DataMask,unsigned short);
00092
00094
00095 vtkSetMacro(HeaderSize,int);
00096 vtkGetMacro(HeaderSize,int);
00098
00100
00110 void SetDataByteOrderToBigEndian();
00111 void SetDataByteOrderToLittleEndian();
00112 int GetDataByteOrder();
00113 void SetDataByteOrder(int);
00114 const char *GetDataByteOrderAsString();
00116
00118
00119 vtkSetMacro(SwapBytes,int);
00120 vtkGetMacro(SwapBytes,int);
00121 vtkBooleanMacro(SwapBytes,int);
00123
00125
00128 virtual void SetTransform(vtkTransform*);
00129 vtkGetObjectMacro(Transform,vtkTransform);
00131
00133 vtkImageData *GetImage(int ImageNumber);
00134
00135 protected:
00136 vtkVolume16Reader();
00137 ~vtkVolume16Reader();
00138
00139 virtual void ExecuteData(vtkDataObject *);
00140 virtual void ExecuteInformation();
00141 int DataDimensions[2];
00142 unsigned short DataMask;
00143 int SwapBytes;
00144 int HeaderSize;
00145 vtkTransform *Transform;
00146
00147 void TransformSlice (unsigned short *slice, unsigned short *pixels, int k, int dimensions[3], int bounds[3]);
00148 void ComputeTransformedDimensions(int dimensions[3]);
00149 void ComputeTransformedBounds(int bounds[6]);
00150 void ComputeTransformedSpacing(float Spacing[3]);
00151 void ComputeTransformedOrigin(float origin[3]);
00152 void AdjustSpacingAndOrigin(int dimensions[3], float Spacing[3], float origin[3]);
00153 void ReadImage(int ImageNumber, vtkUnsignedShortArray *);
00154 void ReadVolume(int FirstImage, int LastImage, vtkUnsignedShortArray *);
00155 int Read16BitImage(FILE *fp, unsigned short *pixels, int xsize, int ysize,
00156 int skip, int swapBytes);
00157
00158 private:
00159 vtkVolume16Reader(const vtkVolume16Reader&);
00160 void operator=(const vtkVolume16Reader&);
00161 };
00162
00163 #endif
00164
00165