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

Parallel/vtkImageBlockReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageBlockReader.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00025 #ifndef __vtkImageBlockReader_h
00026 #define __vtkImageBlockReader_h
00027 
00028 #include "vtkImageSource.h"
00029 
00030 
00031 class VTK_PARALLEL_EXPORT vtkImageBlockReader : public vtkImageSource
00032 {
00033 public:
00034   static vtkImageBlockReader *New();
00035   vtkTypeRevisionMacro(vtkImageBlockReader,vtkImageSource);
00036   void PrintSelf(ostream& os, vtkIndent indent);
00037 
00039 
00041   vtkSetVector3Macro(Divisions, int);
00042   vtkGetVector3Macro(Divisions, int);
00044 
00046 
00048   vtkSetMacro(Overlap, int);
00049   vtkGetMacro(Overlap, int);
00051 
00053 
00055   vtkSetVector6Macro(WholeExtent, int);
00056   vtkGetVector6Macro(WholeExtent, int);
00058 
00060 
00062   vtkSetMacro(NumberOfScalarComponents, int);  
00063   vtkGetMacro(NumberOfScalarComponents, int);  
00065   
00067 
00069   vtkSetMacro(ScalarType, int);  
00070   vtkGetMacro(ScalarType, int);  
00072   
00074 
00075   vtkSetStringMacro(FilePattern);
00076   vtkGetStringMacro(FilePattern);
00078 
00079 
00080   
00081 protected:
00082   vtkImageBlockReader();
00083   ~vtkImageBlockReader();
00084   
00085   char *FilePattern;
00086 
00087   int WholeExtent[6];
00088   int NumberOfScalarComponents;
00089   int ScalarType;
00090   int Divisions[3];
00091   int Overlap;
00092 
00093 
00095 
00096   void Execute(vtkImageData *data);
00097   void ExecuteInformation();
00099 
00100   // This method computes the XYZExtents.
00101   void ComputeBlockExtents();
00102   void DeleteBlockExtents();
00103 
00104   // helper methods
00105   void Read(vtkImageData *data, int *ext);
00106   void ReadRemainder(vtkImageData *data, int *ext, int *doneExt);
00107   void ReadBlock(int xIdx, int yIdx, int zIdx, 
00108                  vtkImageData *data, int *ext);
00109 
00112   void ModifyOutputUpdateExtent();
00113 
00114   // extents (min, max) of the divisions.
00115   int *XExtents;
00116   int *YExtents;
00117   int *ZExtents;
00118 private:
00119   vtkImageBlockReader(const vtkImageBlockReader&);  // Not implemented.
00120   void operator=(const vtkImageBlockReader&);  // Not implemented.
00121 };
00122 
00123 
00124 #endif
00125 
00126