VTK
|
00001 // -*- c++ -*- 00002 /*========================================================================= 00003 00004 Program: Visualization Toolkit 00005 Module: vtkPNrrdReader.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 00042 #ifndef vtkPNrrdReader_h 00043 #define vtkPNrrdReader_h 00044 00045 #include "vtkIOMPIImageModule.h" // For export macro 00046 #include "vtkNrrdReader.h" 00047 00048 class vtkCharArray; 00049 class vtkMultiProcessController; 00050 class vtkMPIOpaqueFileHandle; 00051 00052 class VTKIOMPIIMAGE_EXPORT vtkPNrrdReader : public vtkNrrdReader 00053 { 00054 public: 00055 vtkTypeMacro(vtkPNrrdReader, vtkNrrdReader); 00056 static vtkPNrrdReader *New(); 00057 virtual void PrintSelf(ostream &os, vtkIndent indent); 00058 00060 00062 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00063 virtual void SetController(vtkMultiProcessController *); 00065 00066 protected: 00067 vtkPNrrdReader(); 00068 ~vtkPNrrdReader(); 00069 00070 virtual int ReadHeader(); 00071 virtual int ReadHeader(vtkCharArray *headerBuffer); 00072 00075 int GetDataScalarTypeSize(); 00076 00081 virtual void PartitionController(const int extent[6]); 00082 00085 virtual unsigned long GetHeaderSize(vtkMPIOpaqueFileHandle &file); 00086 00091 virtual void SetupFileView(vtkMPIOpaqueFileHandle &file, const int extent[6]); 00092 00097 virtual void ReadSlice(int slice, const int extent[6], void *buffer); 00098 00101 virtual void TransformData(vtkImageData *data); 00102 00104 00106 void SetGroupedController(vtkMultiProcessController *); 00107 vtkMultiProcessController *GroupedController; 00109 00110 virtual void ExecuteDataWithInformation(vtkDataObject *data, 00111 vtkInformation *outInfo); 00112 00113 vtkMultiProcessController *Controller; 00114 00115 private: 00116 vtkPNrrdReader(const vtkPNrrdReader &); // Not implemented. 00117 void operator=(const vtkPNrrdReader &); // Not implemented. 00118 }; 00119 00120 #endif //vtkPNrrdReader_h