VTK  9.4.20250509
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
16#ifndef vtkUniformGridAMR_h
17#define vtkUniformGridAMR_h
18
19#include "vtkCommonDataModelModule.h" // For export macro
20#include "vtkCompositeDataSet.h"
21
22VTK_ABI_NAMESPACE_BEGIN
24class vtkUniformGrid;
27
28class VTKCOMMONDATAMODEL_EXPORT vtkUniformGridAMR : public vtkCompositeDataSet
29{
30public:
33 void PrintSelf(ostream& os, vtkIndent indent) override;
34
39
43 int GetDataObjectType() VTK_FUTURE_CONST override { return VTK_UNIFORM_GRID_AMR; }
44
48 void Initialize() override;
49
53 virtual void Initialize(int numLevels, const int* blocksPerLevel);
54
59 void SetGridDescription(int gridDescription);
61
65 unsigned int GetNumberOfLevels();
66
70 virtual unsigned int GetTotalNumberOfBlocks();
71
75 unsigned int GetNumberOfDataSets(unsigned int level);
76
78
81 void GetBounds(double bounds[6]);
82 const double* GetBounds();
83 void GetMin(double min[3]);
84 void GetMax(double max[3]);
86
90 void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj) override;
91
96 virtual void SetDataSet(unsigned int level, unsigned int idx, vtkUniformGrid* grid);
97
98 // Needed because, otherwise vtkCompositeData::GetDataSet(unsigned int flatIndex) is hidden.
99 using Superclass::GetDataSet;
100
105
109 vtkUniformGrid* GetDataSet(unsigned int level, unsigned int idx);
110
115 int GetCompositeIndex(unsigned int level, unsigned int index);
116
121 void GetLevelAndIndex(unsigned int compositeIdx, unsigned int& level, unsigned int& idx);
122
124
128 void ShallowCopy(vtkDataObject* src) override;
130
134 void DeepCopy(vtkDataObject* src) override;
135
140
142
148
149protected:
152
153 double Bounds[6];
154
156
159 vtkGetObjectMacro(AMRData, vtkAMRDataInternals);
162
164
166
169 vtkGetObjectMacro(AMRInfo, vtkAMRInformation);
172
174
175private:
176 vtkUniformGridAMR(const vtkUniformGridAMR&) = delete;
177 void operator=(const vtkUniformGridAMR&) = delete;
178
180};
181
182VTK_ABI_NAMESPACE_END
183#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 multi-resolution dataset based on vtkUniformGrid
void GetMin(double min[3])
Get the (min/max) bounds of the AMR domain.
vtkDataObject * GetDataSet(vtkCompositeDataIterator *iter) override
Get the data set pointed to by iter.
virtual void SetAMRData(vtkAMRDataInternals *)
Get/Set the meta AMR meta data.
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.
vtkAMRDataInternals * AMRData
static vtkUniformGridAMR * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
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...
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.
void DeepCopy(vtkDataObject *src) override
DeepCopy.
void Initialize() override
Restore data object to initial state.
void CompositeShallowCopy(vtkCompositeDataSet *src) override
ShallowCopy.
vtkCompositeDataIterator * NewIterator() override
Return a new iterator (the iterator has to be deleted by the user).
void SetDataSet(vtkCompositeDataIterator *iter, vtkDataObject *dataObj) override
Overriding superclass method.
vtkUniformGrid * GetDataSet(unsigned int level, unsigned int idx)
Get the data set using the (level, index) pair.
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.
static vtkUniformGridAMR * New()
void CopyStructure(vtkCompositeDataSet *src) override
CopyStructure.
static vtkUniformGridAMR * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
const double * GetBounds()
Get the (min/max) bounds of the AMR domain.
virtual void SetAMRInfo(vtkAMRInformation *)
Get/Set the meta AMR meta info.
~vtkUniformGridAMR() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAMRInformation * AMRInfo
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.
int GetDataObjectType() VTK_FUTURE_CONST override
Return class name of data type (see vtkType.h for definitions).
image data with blanking
@ VTK_UNIFORM_GRID_AMR
Definition vtkType.h:109
#define VTK_NEWINSTANCE
#define max(a, b)