VTK  9.5.20250901
vtkHyperTreeGridPreConfiguredSource.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
3
14#include "vtkFiltersSourcesModule.h" //for export macro
16#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
17
18#ifndef vtkHyperTreeGridPreConfiguredSource_h
19#define vtkHyperTreeGridPreConfiguredSource_h
20
21VTK_ABI_NAMESPACE_BEGIN
24class vtkDoubleArray;
25
28{
29public:
35
37
40 void GenerateUnbalanced(vtkHyperTreeGrid* HTG, unsigned int dim, unsigned int factor,
41 unsigned int depth, const std::vector<double>& extent,
42 const std::vector<unsigned int>& subdivisions);
43
44 void GenerateBalanced(vtkHyperTreeGrid* HTG, unsigned int dim, unsigned int factor,
45 unsigned int depth, const std::vector<double>& extent,
46 const std::vector<unsigned int>& subdivisions);
48
50
54 {
61 CUSTOM
62 };
64
66
70 {
72 BALANCED
73 };
75
81
83
86 vtkGetEnumMacro(CustomArchitecture, HTGArchitecture);
87 vtkSetEnumMacro(CustomArchitecture, HTGArchitecture);
88
92 vtkGetMacro(CustomDim, unsigned int);
93 vtkSetMacro(CustomDim, unsigned int);
94
98 vtkGetMacro(CustomFactor, unsigned int);
99 vtkSetMacro(CustomFactor, unsigned int);
100
104 vtkGetMacro(CustomDepth, unsigned int);
105 vtkSetMacro(CustomDepth, unsigned int);
106
110 vtkGetVector6Macro(CustomExtent, double);
111 vtkSetVector6Macro(CustomExtent, double);
112
116 vtkGetVector3Macro(CustomSubdivisions, unsigned int);
117 vtkSetVector3Macro(CustomSubdivisions, unsigned int);
119
121
125
127
129
131
133
135
138
139protected:
146
148
150
153
155
157
160 void Preprocess(vtkHyperTreeGrid* HTG, unsigned int dim, unsigned int factor,
161 const std::vector<double>& extent, const std::vector<unsigned int>& subdivisions);
162
167 vtkHyperTreeGridNonOrientedCursor* cursor, vtkDoubleArray* levels, int maxDepth);
169
171
175
180 unsigned int CustomDim;
181 unsigned int CustomFactor;
182 unsigned int CustomDepth;
183 double CustomExtent[6];
184 unsigned int CustomSubdivisions[3];
186
187}; // vtkHyperTreeGridPreConfiguredSource
188VTK_ABI_NAMESPACE_END
189
190#endif // vtkHyperTreeGridPreConfiguredSource_h
general representation of visualization data
dynamic, self-adjusting array of double
Superclass for algorithms that produce a hyper tree grid as output.
Objects for traversal a HyperTreeGrid.
Helper class for generating a curated set of HyperTree Grids (HTGs) for testing purposes.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
void operator=(const vtkHyperTreeGridPreConfiguredSource &)=delete
vtkSetEnumMacro(CustomArchitecture, HTGArchitecture)
Get/Set for custom architecture.
static vtkHyperTreeGridPreConfiguredSource * New()
HTGType
An enum type for referencing preconfigured HTGs.
unsigned int CustomFactor
The pre-configuration mode of the generator.
~vtkHyperTreeGridPreConfiguredSource() override=default
HTGType HTGMode
The pre-configuration mode of the generator.
vtkGetEnumMacro(CustomArchitecture, HTGArchitecture)
Get/Set for custom architecture.
void GenerateUnbalanced3DepthQuadTree2x3(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
HTGArchitecture
An enum type for configuring the type of generation for the CUSTOM HTG type.
void GenerateBalanced2Depth3BranchTree3x3x2(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
void GenerateBalanced3DepthQuadTree2x3(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
int ProcessTrees(vtkHyperTreeGrid *, vtkDataObject *) override
Main routine to process individual trees in the grid This is pure virtual method to be implemented by...
void Preprocess(vtkHyperTreeGrid *HTG, unsigned int dim, unsigned int factor, const std::vector< double > &extent, const std::vector< unsigned int > &subdivisions)
Common preprocessing for setting up the HyperTreeGrid for all types.
void GenerateBalanced4Depth3BranchTree2x2(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
HTGArchitecture CustomArchitecture
All members related to the CUSTOM HTGType.
void GenerateUnbalanced3DepthOctTree3x2x3(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
int GenerateCustom(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
void GenerateUnbalanced2Depth3BranchTree3x3(vtkHyperTreeGrid *HTG)
Helper functions for generating the different types of HTGs.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkHyperTreeGridPreConfiguredSource(const vtkHyperTreeGridPreConfiguredSource &)=delete
vtkGetEnumMacro(HTGMode, HTGType)
Get/Set HyperTreeGrid mode.
unsigned int CustomDepth
The pre-configuration mode of the generator.
unsigned int CustomDim
The pre-configuration mode of the generator.
int FillOutputPortInformation(int, vtkInformation *) override
Define default input and output port types.
vtkHyperTreeGridPreConfiguredSource()
Constructor setup.
void GenerateUnbalanced(vtkHyperTreeGrid *HTG, unsigned int dim, unsigned int factor, unsigned int depth, const std::vector< double > &extent, const std::vector< unsigned int > &subdivisions)
Helper methods for generating HTGs.
void RecurseBalanced(vtkHyperTreeGridNonOrientedCursor *cursor, vtkDoubleArray *levels, int maxDepth)
Recursive helper for the BALANCED architecture.
void GenerateBalanced(vtkHyperTreeGrid *HTG, unsigned int dim, unsigned int factor, unsigned int depth, const std::vector< double > &extent, const std::vector< unsigned int > &subdivisions)
Helper methods for generating HTGs.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
#define VTK_MARSHALAUTO