VTK  9.5.2
vtkHyperTreeGrid.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
58
59#ifndef vtkHyperTreeGrid_h
60#define vtkHyperTreeGrid_h
61
62#include "vtkCommonDataModelModule.h" // For export macro
63#include "vtkDataObject.h"
64
65#include "vtkNew.h" // vtkSmartPointer
66#include "vtkSmartPointer.h" // vtkSmartPointer
67
68#include <cassert> // std::assert
69#include <map> // std::map
70#include <memory> // std::shared_ptr
71
72VTK_ABI_NAMESPACE_BEGIN
73class vtkBitArray;
74class vtkBoundingBox;
75class vtkCellLinks;
76class vtkCollection;
77class vtkDataArray;
78class vtkHyperTree;
89class vtkDoubleArray;
91class vtkIdTypeArray;
92class vtkLine;
93class vtkPixel;
94class vtkPoints;
95class vtkCellData;
97
98class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGrid : public vtkDataObject
99{
100public:
106
108 void PrintSelf(ostream& os, vtkIndent indent) override;
109
114 static constexpr vtkIdType InvalidIndex = ~0;
115
119 vtkSetStringMacro(ModeSqueeze); // By copy
120 vtkGetStringMacro(ModeSqueeze);
121
125 virtual void Squeeze();
126
130 int GetDataObjectType() VTK_FUTURE_CONST override { return VTK_HYPER_TREE_GRID; }
131
137
142
143 // --------------------------------------------------------------------------
144 // RectilinearGrid common API
145 // --------------------------------------------------------------------------
146
148
151 void SetDimensions(const unsigned int dims[3]);
152 void SetDimensions(const int dims[3]);
153 void SetDimensions(unsigned int i, unsigned int j, unsigned int k);
154 void SetDimensions(int i, int j, int k);
156
158
162 const unsigned int* GetDimensions() const VTK_SIZEHINT(3);
163 void GetDimensions(int dim[3]) const;
164 void GetDimensions(unsigned int dim[3]) const;
166
168
174 void SetExtent(const int extent[6]);
175 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
176 vtkGetVector6Macro(Extent, int);
178
180
185 const unsigned int* GetCellDims() const VTK_SIZEHINT(3);
186 void GetCellDims(int cellDims[3]) const;
187 void GetCellDims(unsigned int cellDims[3]) const;
189
190 // --------------------------------------------------------------------------
191
193
196 unsigned int GetDimension() const { return this->Dimension; }
198
200
203 void Get1DAxis(unsigned int& axis) const
204 {
205 assert("pre: valid_dim" && this->GetDimension() == 1);
206 axis = this->Axis[0];
207 }
208
209
211
214 void Get2DAxes(unsigned int& axis1, unsigned int& axis2) const
215 {
216 assert("pre: valid_dim" && this->GetDimension() == 2);
217 axis1 = this->Axis[0];
218 axis2 = this->Axis[1];
219 }
220
221
223
226 const unsigned int* GetAxes() const { return this->Axis; }
228
230
233 // vtkGetMacro(NumberOfChildren, unsigned int); not const
234 unsigned int GetNumberOfChildren() const { return this->NumberOfChildren; }
236
238
242 vtkSetMacro(TransposedRootIndexing, bool);
243 vtkGetMacro(TransposedRootIndexing, bool);
247
249
255 unsigned int GetOrientation() const { return this->Orientation; }
257
259
262 vtkGetMacro(FreezeState, bool);
264
266
269 void SetBranchFactor(unsigned int);
270 unsigned int GetBranchFactor() const { return this->BranchFactor; }
272
277
282
287
292
296 unsigned int GetNumberOfLevels();
297
299
303 vtkGetObjectMacro(XCoordinates, vtkDataArray);
305
307
311 vtkGetObjectMacro(YCoordinates, vtkDataArray);
313
315
319 vtkGetObjectMacro(ZCoordinates, vtkDataArray);
321
323
326 virtual void CopyCoordinates(const vtkHyperTreeGrid* output);
327 virtual void SetFixedCoordinates(unsigned int axis, double value);
329
331
335 vtkGetObjectMacro(Mask, vtkBitArray);
337
341 bool HasMask();
342
344
347 vtkSetMacro(HasInterface, bool);
348 vtkGetMacro(HasInterface, bool);
349 vtkBooleanMacro(HasInterface, bool);
351
353
356 vtkSetStringMacro(InterfaceNormalsName);
357 vtkGetStringMacro(InterfaceNormalsName);
359
361
364 vtkSetStringMacro(InterfaceInterceptsName);
365 vtkGetStringMacro(InterfaceInterceptsName);
367
369
372 vtkSetMacro(DepthLimiter, unsigned int);
373 vtkGetMacro(DepthLimiter, unsigned int);
375
377