VTK
dox/Parallel/vtkMPIImageReader.h
Go to the documentation of this file.
00001 // -*- c++ -*-
00002 /*=========================================================================
00003 
00004   Program:   Visualization Toolkit
00005   Module:    vtkMPIImageReader.h
00006 
00007   Copyright (c) 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 =========================================================================*/
00016 /*----------------------------------------------------------------------------
00017  Copyright (c) Sandia Corporation
00018  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00019 ----------------------------------------------------------------------------*/
00020 
00047 #ifndef __vtkMPIImageReader_h
00048 #define __vtkMPIImageReader_h
00049 
00050 #include "vtkImageReader.h"
00051 
00052 class vtkMPIOpaqueFileHandle;
00053 class vtkMultiProcessController;
00054 
00055 class VTK_PARALLEL_EXPORT vtkMPIImageReader : public vtkImageReader
00056 {
00057 public:
00058   vtkTypeMacro(vtkMPIImageReader, vtkImageReader);
00059   static vtkMPIImageReader *New();
00060   virtual void PrintSelf(ostream &os, vtkIndent indent);
00061 
00063 
00065   vtkGetObjectMacro(Controller, vtkMultiProcessController);
00066   virtual void SetController(vtkMultiProcessController *);
00068 
00069 protected:
00070   vtkMPIImageReader();
00071   ~vtkMPIImageReader();
00072 
00073   vtkMultiProcessController *Controller;
00074 
00077   int GetDataScalarTypeSize();
00078 
00083   virtual void PartitionController(const int extent[6]);
00084 
00087   virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle &file);
00088 
00093   virtual void SetupFileView(vtkMPIOpaqueFileHandle &file, const int extent[6]);
00094 
00099   virtual void ReadSlice(int slice, const int extent[6], void *buffer);
00100 
00103   virtual void TransformData(vtkImageData *data);
00104 
00106 
00108   void SetGroupedController(vtkMultiProcessController *);
00109   vtkMultiProcessController *GroupedController;
00111 
00112   virtual void ExecuteData(vtkDataObject *data);
00113 
00114 private:
00115   vtkMPIImageReader(const vtkMPIImageReader &); // Not implemented
00116   void operator=(const vtkMPIImageReader &);    // Not implemented
00117 };
00118 
00119 #endif //__vtkMPIImageReader_h