VTK  9.3.20240329
vtkUniformGridAMR.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
13 #ifndef vtkUniformGridAMR_h
14 #define vtkUniformGridAMR_h
15 
16 #include "vtkCommonDataModelModule.h" // For export macro
17 #include "vtkCompositeDataSet.h"
18 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_3_0
19 
20 VTK_ABI_NAMESPACE_BEGIN
22 class vtkUniformGrid;
23 class vtkAMRInformation;
25 
26 class VTKCOMMONDATAMODEL_EXPORT vtkUniformGridAMR : public vtkCompositeDataSet
27 {
28 public:
31  void PrintSelf(ostream& os, vtkIndent indent) override;
32 
37 
41  int GetDataObjectType() override { return VTK_UNIFORM_GRID_AMR; }
42 
46  void Initialize() override;
47 
51  virtual void Initialize(int numLevels, const int* blocksPerLevel);
52 
57  void SetGridDescription(int gridDescription);
59 
63  unsigned int GetNumberOfLevels();
64 
68  virtual unsigned int GetTotalNumberOfBlocks();
69 
73  unsigned int GetNumberOfDataSets(unsigned int level);
74 
76 
79  void GetBounds(double bounds[6]);
80  const double* GetBounds();
81  void GetMin(double min[3]);
82  void GetMax(double max[3]);
84 
88  void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj) override;
89 
94  virtual void SetDataSet(unsigned int level, unsigned int idx, vtkUniformGrid* grid);
95 
96  // Needed because, otherwise vtkCompositeData::GetDataSet(unsigned int flatIndex) is hidden.
97  using Superclass::GetDataSet;
98 
103 
107  vtkUniformGrid* GetDataSet(unsigned int level, unsigned int idx);
108 
113  int GetCompositeIndex(unsigned int level, unsigned int index);
114 
119  void GetLevelAndIndex(unsigned int compositeIdx, unsigned int& level, unsigned int& idx);
120 
122 
126  void ShallowCopy(vtkDataObject* src) override;
128 
132  VTK_DEPRECATED_IN_9_3_0("Please use ShallowCopy instead.")
133  void RecursiveShallowCopy(vtkDataObject* src) override;
134 
138  void DeepCopy(vtkDataObject* src) override;
139 
143  void CopyStructure(vtkCompositeDataSet* src) override;
144 
146 
152 
153 protected:
155  ~vtkUniformGridAMR() override;
156 
157  double Bounds[6];
158 
160 
163  vtkGetObjectMacro(AMRData, vtkAMRDataInternals);
164  virtual void SetAMRData(vtkAMRDataInternals*);
166 
168 
170 
173  vtkGetObjectMacro(AMRInfo, vtkAMRInformation);
174  virtual void SetAMRInfo(vtkAMRInformation*);
176 
178 
179 private:
180  vtkUniformGridAMR(const vtkUniformGridAMR&) = delete;
181  void operator=(const vtkUniformGridAMR&) = delete;
182 
184 };
185 
186 VTK_ABI_NAMESPACE_END
187 #endif
container of vtkUniformGrid for an AMR data set
Meta data that describes the structure of an AMR data set.
superclass for composite data iterators
abstract superclass for composite (multi-block or AMR) datasets
general representation of visualization data
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
subclass of vtkCompositeDataIterator with API to get current level and dataset index.
a concrete implementation of vtkCompositeDataSet
void GetMin(double min[3])
Get the (min/max) bounds of the AMR domain.
vtkUniformGrid * GetDataSet(unsigned int level, unsigned int idx)
Get the data set using the (level, index) pair.
virtual void SetDataSet(unsigned int level, unsigned int idx, vtkUniformGrid *grid)
At the passed in level, set grid as the idx'th block at that level.
void ShallowCopy(vtkDataObject *src) override
ShallowCopy.
void GetLevelAndIndex(unsigned int compositeIdx, unsigned int &level, unsigned int &idx)
Given the compositeIdx (as set by SetCompositeIdx) this method returns the corresponding level and da...
vtkDataObject * GetDataSet(vtkCompositeDataIterator *iter) override
Get the data set pointed to by iter.
virtual void Initialize(int numLevels, const int *blocksPerLevel)
Initialize the AMR with a specified number of levels and the blocks per level.
unsigned int GetNumberOfLevels()
Get number of levels.
void GetMax(double max[3])
Get the (min/max) bounds of the AMR domain.
vtkCompositeDataIterator * NewIterator() override
Return a new iterator (the iterator has to be deleted by the user).
int GetDataObjectType() override
Return class name of data type (see vtkType.h for definitions).
void Initialize() override
Restore data object to initial state.
void CompositeShallowCopy(vtkCompositeDataSet *src) override
ShallowCopy.
const double * GetBounds()
Get the (min/max) bounds of the AMR domain.
void SetDataSet(vtkCompositeDataIterator *iter, vtkDataObject *dataObj) override
Overriding superclass method.
static vtkUniformGridAMR * New()
void GetBounds(double bounds[6])
Get the (min/max) bounds of the AMR domain.
unsigned int GetNumberOfDataSets(unsigned int level)
Get the number of datasets at the given level, including null blocks.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetGridDescription(int gridDescription)
Set/Get the data description of this uniform grid instance, e.g.
virtual unsigned int GetTotalNumberOfBlocks()
Get the total number of blocks, including nullptr blocks.
int GetCompositeIndex(unsigned int level, unsigned int index)
Retrieves the composite index associated with the data at the given (level,index) pair.
image data with blanking
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.
@ info
Definition: vtkX3D.h:376
@ level
Definition: vtkX3D.h:395
@ index
Definition: vtkX3D.h:246
#define VTK_DEPRECATED_IN_9_3_0(reason)
#define VTK_UNIFORM_GRID_AMR
Definition: vtkType.h:94
#define VTK_NEWINSTANCE
#define max(a, b)