VTK
vtkAMREnzoReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAMREnzoReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14  =========================================================================*/
26 #ifndef vtkAMREnzoReader_h
27 #define vtkAMREnzoReader_h
28 
29 #include "vtkIOAMRModule.h" // For export macro
30 #include "vtkAMRBaseReader.h"
31 
32 #include <map> // For STL map
33 #include <string> // For std::string
34 
35 class vtkOverlappingAMR;
37 
38 class VTKIOAMR_EXPORT vtkAMREnzoReader : public vtkAMRBaseReader
39 {
40 public:
41  static vtkAMREnzoReader* New();
43  void PrintSelf(ostream &os, vtkIndent indent );
44 
46 
49  vtkSetMacro( ConvertToCGS, int );
50  vtkGetMacro( ConvertToCGS, int );
51  vtkBooleanMacro( ConvertToCGS, int );
53 
57  int GetNumberOfBlocks();
58 
62  int GetNumberOfLevels();
63 
67  void SetFileName( const char* fileName );
68 
69 protected:
72 
78  void ParseConversionFactors();
79 
84  int GetIndexFromArrayName( std::string arrayName );
85 
90  void ParseLabel(const std::string &labelString, int &idx, std::string &label);
91 
96  void ParseCFactor(const std::string &labelString, int &idx, double &factor );
97 
103  double GetConversionFactor( const std::string& name );
104 
108  void ReadMetaData();
109 
113  int GetBlockLevel( const int blockIdx );
114 
115  void ComputeStats(vtkEnzoReaderInternal* internal, std::vector<int>& blocksPerLevel, double min[3]);
116 
120  int FillMetaData( );
121 
125  vtkUniformGrid* GetAMRGrid( const int blockIdx );
126 
130  void GetAMRGridData(
131  const int blockIdx, vtkUniformGrid *block, const char *field);
132 
137  const int vtkNotUsed(blockIdx), vtkUniformGrid *vtkNotUsed(block), const char *vtkNotUsed(field)) {;};
138 
143 
145  bool IsReady;
146 
147 private:
148  vtkAMREnzoReader( const vtkAMREnzoReader& ) VTK_DELETE_FUNCTION;
149  void operator=(const vtkAMREnzoReader& ) VTK_DELETE_FUNCTION;
150 
151  vtkEnzoReaderInternal *Internal;
152 
153  std::map< std::string, int > label2idx;
154  std::map< int, double > conversionFactors;
155 };
156 
157 #endif /* vtkAMREnzoReader_h */
virtual vtkUniformGrid * GetAMRGrid(const int blockIdx)=0
Loads the block according to the index w.r.t.
virtual int GetNumberOfBlocks()=0
Returns the total number of blocks.
virtual void ReadMetaData()=0
Reads all the metadata from the file.
A concrete instance of vtkAMRBaseReader that implements functionality for reading Enzo AMR datasets...
virtual int GetNumberOfLevels()=0
Returns the total number of levels.
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void GetAMRGridData(const int blockIdx, vtkUniformGrid *block, const char *field)=0
Loads the block data.
virtual int GetBlockLevel(const int blockIdx)=0
Returns the block level for the given block.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
image data with blanking
hierarchical dataset of vtkUniformGrids
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void GetAMRGridPointData(const int vtkNotUsed(blockIdx), vtkUniformGrid *vtkNotUsed(block), const char *vtkNotUsed(field))
See vtkAMRBaseReader::GetAMRGridData.
An abstract class that encapsulates common functionality for all AMR readers.
static vtkOverlappingAMRAlgorithm * New()
virtual int FillMetaData()=0
Loads all the AMR metadata & constructs the LevelIdxPair12InternalIdx datastructure which maps (level...
virtual void SetUpDataArraySelections()=0
Initializes the PointDataArraySelection & CellDataArraySelection.
virtual void SetFileName(const char *fileName)=0
Set/Get the filename.