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

vtkImageReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageReader.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 =========================================================================*/
00036 #ifndef __vtkImageReader_h
00037 #define __vtkImageReader_h
00038 
00039 #include "vtkImageReader2.h"
00040 
00041 class vtkTransform;
00042 
00043 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00044 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00045 
00046 class VTK_IO_EXPORT vtkImageReader : public vtkImageReader2
00047 {
00048 public:
00049   static vtkImageReader *New();
00050   vtkTypeRevisionMacro(vtkImageReader,vtkImageReader2);
00051   void PrintSelf(ostream& os, vtkIndent indent);   
00052 
00054 
00056   vtkSetVector6Macro(DataVOI,int);
00057   vtkGetVector6Macro(DataVOI,int);
00059   
00061 
00062   vtkGetMacro(DataMask,unsigned short);
00063   void SetDataMask(int val) 
00064        {if (val == this->DataMask) { return; }
00065         this->DataMask = ((unsigned short)(val)); this->Modified();}
00067   
00069 
00072   virtual void SetTransform(vtkTransform*);
00073   vtkGetObjectMacro(Transform,vtkTransform);
00075 
00076   // Warning !!!
00077   // following should only be used by methods or template helpers, not users
00078   void ComputeInverseTransformedExtent(int inExtent[6],
00079                                        int outExtent[6]);
00080   void ComputeInverseTransformedIncrements(int inIncr[3],
00081                                            int outIncr[3]);
00082 
00083   int OpenAndSeekFile(int extent[6], int slice);
00084 protected:
00085   vtkImageReader();
00086   ~vtkImageReader();
00087 
00088   unsigned short DataMask;  // Mask each pixel with ...
00089 
00090   vtkTransform *Transform;
00091 
00092   void ComputeTransformedSpacing (float Spacing[3]);
00093   void ComputeTransformedOrigin (float origin[3]);
00094   void ComputeTransformedExtent(int inExtent[6],
00095                                 int outExtent[6]);
00096   void ComputeTransformedIncrements(int inIncr[3],
00097                                     int outIncr[3]);
00098 
00099   int DataVOI[6];
00100   
00101   void ExecuteInformation();
00102   void ExecuteData(vtkDataObject *data);
00103 private:
00104   vtkImageReader(const vtkImageReader&);  // Not implemented.
00105   void operator=(const vtkImageReader&);  // Not implemented.
00106 };
00107 
00108 #endif