VTK  9.4.20250130
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
19VTK_ABI_NAMESPACE_BEGIN
21class vtkUniformGrid;
24
25class VTKCOMMONDATAMODEL_EXPORT vtkUniformGridAMR : public vtkCompositeDataSet
26{
27public:
30 void PrintSelf(ostream& os, vtkIndent indent) override;
31
36
40 int GetDataObjectType() override { return VTK_UNIFORM_GRID_AMR; }
41
45 void Initialize() override;
46
50 virtual void Initialize(int numLevels, const int* blocksPerLevel);
51
56 void SetGridDescription(int gridDescription);
58
62 unsigned int GetNumberOfLevels();
63
67 virtual unsigned int GetTotalNumberOfBlocks();
68
72 unsigned int GetNumberOfDataSets(unsigned int level);
73
75
78 void GetBounds(double bounds[6]);
79 const double* GetBounds();
80 void GetMin(double min[3]);
81 void GetMax(double max[3]);
83
87 void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj) override;
88
93 virtual void SetDataSet(unsigned int level, unsigned int idx, vtkUniformGrid* grid);
94
95 // Needed because, otherwise vtkCompositeData::GetDataSet(unsigned int flatIndex) is hidden.
96 using Superclass::GetDataSet;
97
102
106 vtkUniformGrid* GetDataSet(unsigned int level, unsigned int idx);
107
112 int GetCompositeIndex(unsigned int level, unsigned int index);
113
118 void GetLevelAndIndex(unsigned int compositeIdx, unsigned int& level, unsigned int& idx);
119
121
125 void ShallowCopy(vtkDataObject* src) override;
127
131 void DeepCopy(vtkDataObject* src) override;
132
137
139
145
146protected:
149
150 double Bounds[6];
151
153
156 vtkGetObjectMacro(AMRData, vtkAMRDataInternals);
159
161
163
166 vtkGetObjectMacro(AMRInfo, vtkAMRInformation);
169
171
172private:
173 vtkUniformGridAMR(const vtkUniformGridAMR&) = delete;
174 void operator=(const vtkUniformGridAMR&) = delete;
175
177};
178
179VTK_ABI_NAMESPACE_END
180#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.
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.
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.
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.
image data with blanking
#define VTK_UNIFORM_GRID_AMR
Definition vtkType.h:94
#define VTK_NEWINSTANCE
#define max(a, b)