Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/IO/vtkVolume16Reader.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkVolume16Reader.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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&); // Not implemented. 00160 void operator=(const vtkVolume16Reader&); // Not implemented. 00161 }; 00162 00163 #endif 00164 00165