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