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

Servers/Filters/vtkHDF5RawImageReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkHDF5RawImageReader.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
00020 #ifndef __vtkHDF5RawImageReader_h
00021 #define __vtkHDF5RawImageReader_h
00022 
00023 #include "vtkSource.h"
00024 
00025 //BTX
00026 class vtkCallbackCommand;
00027 class vtkDataArray;
00028 class vtkDataArraySelection;
00029 class vtkImageData;
00030 class vtkHDF5RawImageReaderDataSetsType;
00031 class vtkHDF5RawImageReaderDataSet;
00032 class vtkHDF5RawImageReader;
00033 
00034 void vtkHDF5RawImageReaderAddDataSet(vtkHDF5RawImageReader* reader,
00035                                      vtkHDF5RawImageReaderDataSet* ds);
00036 //ETX
00037 
00038 class VTK_EXPORT vtkHDF5RawImageReader : public vtkSource
00039 {
00040 public:
00041   static vtkHDF5RawImageReader *New();
00042   vtkTypeRevisionMacro(vtkHDF5RawImageReader,vtkSource);
00043   void PrintSelf(ostream& os, vtkIndent indent);
00044 
00046 
00047   void SetOutput(vtkImageData *output);
00048   vtkImageData *GetOutput();
00049   vtkImageData *GetOutput(int idx);
00051   
00053 
00054   vtkSetStringMacro(FileName);
00055   vtkGetStringMacro(FileName);
00057 
00059 
00060   vtkSetVector3Macro(Stride, int);
00061   vtkGetVector3Macro(Stride, int);
00063 
00065   virtual int CanReadFile(const char* name);
00066   
00068 
00070   vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
00071   vtkGetObjectMacro(CellDataArraySelection, vtkDataArraySelection);
00073   
00075 
00076   int GetNumberOfPointArrays();
00077   int GetNumberOfCellArrays();
00079   
00081 
00083   const char* GetPointArrayName(int index);
00084   const char* GetCellArrayName(int index);
00086   
00088 
00090   int GetPointArrayStatus(const char* name);
00091   int GetCellArrayStatus(const char* name);
00092   void SetPointArrayStatus(const char* name, int status);  
00093   void SetCellArrayStatus(const char* name, int status);  
00095   
00096 protected:
00097   vtkHDF5RawImageReader();
00098   ~vtkHDF5RawImageReader();
00099    
00100   virtual void ExecuteInformation();
00101   virtual void Execute();
00102 
00104 
00105   char* FileName;
00106   int InformationError;
00108 
00109   // Are wholeExtent and updateExtent same?
00110   int UpdateExtentIsWholeExtent();
00111 
00112   // The list of data sets in the input file.
00113   vtkHDF5RawImageReaderDataSetsType* AvailableDataSets;
00114   
00115   void SetToEmptyExtent(int* extent);
00116   void ConvertDimsToExtent(int rank, const int* dims, int* extent);
00117   
00118   //BTX
00119   void AddDataSet(vtkHDF5RawImageReaderDataSet* ds);
00120   
00121   friend void vtkHDF5RawImageReaderAddDataSet(vtkHDF5RawImageReader* reader,
00122                                               vtkHDF5RawImageReaderDataSet* ds);
00123   //ETX
00124 
00125   // The array selections.
00126   vtkDataArraySelection* PointDataArraySelection;
00127   vtkDataArraySelection* CellDataArraySelection;
00128   
00129   // The observer to modify this object when the array selections are
00130   // modified.
00131   vtkCallbackCommand* SelectionObserver;
00132   
00133   char** CreateStringArray(int numStrings);
00134   void DestroyStringArray(int numStrings, char** strings);  
00135   
00136   // Check whether the given array is enabled.
00137   int PointDataArrayIsEnabled(const vtkHDF5RawImageReaderDataSet* ds);
00138   int CellDataArrayIsEnabled(const vtkHDF5RawImageReaderDataSet* ds);
00139   
00140   // Setup the data array selections for the input's set of arrays.
00141   void SetDataArraySelections(vtkDataArraySelection* sel);
00142   
00143   // Callback registered with the SelectionObserver.
00144   static void SelectionModifiedCallback(vtkObject* caller, unsigned long eid,
00145                                         void* clientdata, void* calldata);
00146   
00147 private:
00148   int UpdateExtent[6];
00149   int WholeExtent[6];
00150   int Stride[3];
00151   int Rank;
00152   int Total[3];
00153 
00154   vtkHDF5RawImageReader(const vtkHDF5RawImageReader&);  // Not implemented.
00155   void operator=(const vtkHDF5RawImageReader&);  // Not implemented.
00156 };
00157 
00158 #endif

Generated on Tue May 30 12:31:46 2006 for ParaView by doxygen 1.3.5