VTK
vtkAMRBaseReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAMRBaseReader.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  =========================================================================*/
21 #ifndef VTKAMRBASEREADER_H_
22 #define VTKAMRBASEREADER_H_
23 
24 #include "vtkIOAMRModule.h" // For export macro
26 #include <vector> // STL vector header
27 #include <map> // STL map header
28 #include <utility> // for STL pair
29 
30 // Forward Declarations
31 class vtkOverlappingAMR;
34 class vtkCallbackCommand;
35 class vtkIndent;
36 class vtkAMRDataSetCache;
37 class vtkUniformGrid;
38 class vtkDataArray;
39 
42 {
43 public:
45  void PrintSelf(ostream &os, vtkIndent indent);
46 
49  void Initialize();
50 
52 
53  vtkSetMacro( EnableCaching, int );
54  vtkGetMacro( EnableCaching, int );
55  vtkBooleanMacro( EnableCaching, int );
56  bool IsCachingEnabled() const
57  {
58  return( (this->EnableCaching)?true:false);
59  };
61 
63 
68 
70 
71  vtkSetMacro( MaxLevel,int);
73 
75 
77  vtkGetObjectMacro(CellDataArraySelection, vtkDataArraySelection);
78  vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
80 
82 
86 
88 
90  const char* GetPointArrayName(int index);
91  const char* GetCellArrayName(int index);
93 
95 
97  int GetPointArrayStatus(const char* name);
98  int GetCellArrayStatus(const char* name);
99  void SetPointArrayStatus(const char* name, int status);
100  void SetCellArrayStatus(const char* name, int status);
102 
104 
106  vtkGetStringMacro( FileName );
107  virtual void SetFileName( const char *fileName ) = 0;
109 
112  virtual int GetNumberOfBlocks() = 0;
113 
116  virtual int GetNumberOfLevels() = 0;
117 
118 protected:
120  virtual ~vtkAMRBaseReader();
121 
122  // Desscription:
123  // Checks if this reader instance is attached to a communicator
124  // with more than one MPI processes.
125  bool IsParallel();
126 
129  bool IsBlockMine( const int blockIdx );
130 
134  vtkUniformGrid* GetAMRBlock( const int blockIdx );
135 
140 
147 
149 
152  const int blockIdx, vtkUniformGrid *block, const char *fieldName );
154 
155 
157 
159  const int blockIdx, vtkUniformGrid *block, const char *fieldName );
161 
165  void LoadPointData( const int blockIdx, vtkUniformGrid *block );
166 
171  void LoadCellData( const int blockIdx, vtkUniformGrid *block );
172 
179  int GetBlockProcessId( const int blockIdx );
180 
186  void SetupBlockRequest( vtkInformation *outputInfo );
187 
190  virtual void ReadMetaData() = 0;
191 
193  virtual int GetBlockLevel( const int blockIdx ) = 0;
194 
198  virtual int FillMetaData( ) = 0;
199 
201  virtual vtkUniformGrid* GetAMRGrid( const int blockIdx ) = 0;
202 
204 
205  virtual void GetAMRGridData(
206  const int blockIdx, vtkUniformGrid *block, const char *field ) = 0;
208 
210 
211  virtual void GetAMRGridPointData(
212  const int blockIdx, vtkUniformGrid *block, const char *field ) = 0;
214 
216 
218  virtual int RequestData(
219  vtkInformation* vtkNotUsed(request),
220  vtkInformationVector** vtkNotUsed(inputVector),
221  vtkInformationVector* outputVector );
222  virtual int RequestInformation(
223  vtkInformation* rqst,
224  vtkInformationVector** inputVector,
225  vtkInformationVector* outputVector );
228 
229  // Array selection member variables and methods
233 
238 
240  virtual void SetUpDataArraySelections() = 0;
241 
243 
245  vtkObject *caller,unsigned long eid,void *clientdata,void *calldata );
247 
249  int MaxLevel;
250  char *FileName;
252 
257 
260 
261 
262  //BTX
263  std::vector<int> BlockMap;
264  //ETX
265 
266 private:
267  vtkAMRBaseReader( const vtkAMRBaseReader& ); // Not implemented
268  void operator=( const vtkAMRBaseReader& ); // Not implemented
269 };
270 
271 #endif /* VTKAMRBASEREADER_H_ */
vtkAMRBaseReader::GetNumberOfCellArrays
int GetNumberOfCellArrays()
vtkAMRBaseReader::GetNumberOfLevels
virtual int GetNumberOfLevels()=0
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkAMRBaseReader::SelectionModifiedCallback
static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)
vtkAMRBaseReader::SetUpDataArraySelections
virtual void SetUpDataArraySelections()=0
vtkAMRBaseReader::Initialize
void Initialize()
vtkAMRBaseReader::RequestInformation
virtual int RequestInformation(vtkInformation *rqst, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkAMRBaseReader::BlockMap
std::vector< int > BlockMap
Definition: vtkAMRBaseReader.h:263
vtkAMRBaseReader::FillMetaData
virtual int FillMetaData()=0
vtkAMRBaseReader::SetPointArrayStatus
void SetPointArrayStatus(const char *name, int status)
vtkAMRBaseReader::AssignAndLoadBlocks
void AssignAndLoadBlocks(vtkOverlappingAMR *amrds)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkAMRBaseReader::SetupBlockRequest
void SetupBlockRequest(vtkInformation *outputInfo)
vtkUniformGrid
image data with blanking
Definition: vtkUniformGrid.h:40
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkAMRBaseReader::GetCellArrayName
const char * GetCellArrayName(int index)
VTKIOAMR_EXPORT
#define VTKIOAMR_EXPORT
Definition: vtkIOAMRModule.h:15
vtkAMRBaseReader::LoadedMetaData
bool LoadedMetaData
Definition: vtkAMRBaseReader.h:259
vtkAMRBaseReader::Cache
vtkAMRDataSetCache * Cache
Definition: vtkAMRBaseReader.h:254
vtkAMRBaseReader::PointDataArraySelection
vtkDataArraySelection * PointDataArraySelection
Definition: vtkAMRBaseReader.h:230
vtkAMRBaseReader::CellDataArraySelection
vtkDataArraySelection * CellDataArraySelection
Definition: vtkAMRBaseReader.h:231
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkAMRBaseReader::vtkAMRBaseReader
vtkAMRBaseReader()
vtkAMRBaseReader::Controller
vtkMultiProcessController * Controller
Definition: vtkAMRBaseReader.h:251
vtkAMRBaseReader::GetAMRData
void GetAMRData(const int blockIdx, vtkUniformGrid *block, const char *fieldName)
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:34
vtkAMRBaseReader::IsParallel
bool IsParallel()
vtkAMRBaseReader
Definition: vtkAMRBaseReader.h:42
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkAMRBaseReader::NumBlocksFromFile
int NumBlocksFromFile
Definition: vtkAMRBaseReader.h:255
vtkAMRBaseReader::GetPointArrayStatus
int GetPointArrayStatus(const char *name)
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkAMRBaseReader::GetCellArrayStatus
int GetCellArrayStatus(const char *name)
vtkNotUsed
#define vtkNotUsed(x)
Definition: vtkSetGet.h:557
vtkIOAMRModule.h
vtkAMRBaseReader::GetAMRGridData
virtual void GetAMRGridData(const int blockIdx, vtkUniformGrid *block, const char *field)=0
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:85
vtkAMRBaseReader::IsCachingEnabled
bool IsCachingEnabled() const
Definition: vtkAMRBaseReader.h:56
vtkAMRBaseReader::FileName
char * FileName
Definition: vtkAMRBaseReader.h:250
vtkAMRBaseReader::RequestData
virtual int RequestData(vtkInformation *vtkNotUsed(request), vtkInformationVector **vtkNotUsed(inputVector), vtkInformationVector *outputVector)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkX3D::field
@ field
Definition: vtkX3D.h:177
vtkOverlappingAMRAlgorithm
Definition: vtkOverlappingAMRAlgorithm.h:36
vtkAMRDataSetCache
Definition: vtkAMRDataSetCache.h:35
vtkAMRBaseReader::SelectionObserver
vtkCallbackCommand * SelectionObserver
Definition: vtkAMRBaseReader.h:232
vtkAMRBaseReader::LoadCellData
void LoadCellData(const int blockIdx, vtkUniformGrid *block)
vtkAMRBaseReader::GetNumberOfBlocks
virtual int GetNumberOfBlocks()=0
vtkAMRBaseReader::GetAMRBlock
vtkUniformGrid * GetAMRBlock(const int blockIdx)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkAMRBaseReader::FillOutputPortInformation
int FillOutputPortInformation(int port, vtkInformation *info)
vtkAMRBaseReader::GetBlockLevel
virtual int GetBlockLevel(const int blockIdx)=0
vtkAMRBaseReader::GetBlockProcessId
int GetBlockProcessId(const int blockIdx)
vtkAMRBaseReader::GetAMRGrid
virtual vtkUniformGrid * GetAMRGrid(const int blockIdx)=0
vtkOverlappingAMR
hierarchical dataset of vtkUniformGrids
Definition: vtkOverlappingAMR.h:46
vtkAMRBaseReader::SetCellArrayStatus
void SetCellArrayStatus(const char *name, int status)
vtkAMRBaseReader::GetPointArrayName
const char * GetPointArrayName(int index)
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkAMRBaseReader::EnableCaching
int EnableCaching
Definition: vtkAMRBaseReader.h:253
vtkAMRBaseReader::NumBlocksFromCache
int NumBlocksFromCache
Definition: vtkAMRBaseReader.h:256
vtkAMRBaseReader::LoadPointData
void LoadPointData(const int blockIdx, vtkUniformGrid *block)
vtkAMRBaseReader::InitialRequest
bool InitialRequest
Definition: vtkAMRBaseReader.h:248
vtkAMRBaseReader::IsBlockMine
bool IsBlockMine(const int blockIdx)
vtkAMRBaseReader::GetAMRGridPointData
virtual void GetAMRGridPointData(const int blockIdx, vtkUniformGrid *block, const char *field)=0
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:50
vtkAMRBaseReader::SetFileName
virtual void SetFileName(const char *fileName)=0
vtkAMRBaseReader::Metadata
vtkOverlappingAMR * Metadata
Definition: vtkAMRBaseReader.h:258
vtkOverlappingAMRAlgorithm.h
vtkAMRBaseReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkAMRBaseReader::MaxLevel
int MaxLevel
Definition: vtkAMRBaseReader.h:249
vtkAMRBaseReader::GetNumberOfPointArrays
int GetNumberOfPointArrays()
vtkAMRBaseReader::GetAMRPointData
void GetAMRPointData(const int blockIdx, vtkUniformGrid *block, const char *fieldName)
vtkAMRBaseReader::~vtkAMRBaseReader
virtual ~vtkAMRBaseReader()
vtkAMRBaseReader::InitializeArraySelections
void InitializeArraySelections()
vtkAMRBaseReader::LoadRequestedBlocks
void LoadRequestedBlocks(vtkOverlappingAMR *amrds)
vtkAMRBaseReader::ReadMetaData
virtual void ReadMetaData()=0