VTK  9.3.20240528
vtkHyperTreeGridEvaluateCoarse.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
62#ifndef vtkHyperTreeGridEvaluateCoarse_h
63#define vtkHyperTreeGridEvaluateCoarse_h
64
65#include "vtkFiltersHyperTreeModule.h" // For export macro
67
68#include <vector> // For scratch storage.
69
70VTK_ABI_NAMESPACE_BEGIN
71class vtkBitArray;
72
74
76
77class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridEvaluateCoarse : public vtkHyperTreeGridAlgorithm
78{
79public:
80 enum
81 {
82 OPERATOR_DON_T_CHANGE_FAST = 0,
83 OPERATOR_DON_T_CHANGE = 1,
84 OPERATOR_MIN = 2,
85 OPERATOR_MAX = 3,
86 OPERATOR_SUM = 4,
87 OPERATOR_AVERAGE = 5,
88 OPERATOR_UNMASKED_AVERAGE = 6,
89 OPERATOR_ELDER_CHILD = 7,
90 OPERATOR_SPLATTING_AVERAGE = 8
91 };
92
95 void PrintSelf(ostream& os, vtkIndent indent) override;
96
98
101 vtkSetMacro(Operator, unsigned int);
102 vtkGetMacro(Operator, unsigned int);
104
106
109 vtkSetMacro(Default, double);
111
112protected:
115
120
122
127
132
133private:
135 void operator=(const vtkHyperTreeGridEvaluateCoarse&) = delete;
136
138
141 virtual double EvalCoarse(const std::vector<double>&);
142
143 virtual double Min(const std::vector<double>&);
144 virtual double Max(const std::vector<double>&);
145 virtual double Sum(const std::vector<double>&);
146 virtual double Average(const std::vector<double>&);
147 virtual double UnmaskedAverage(const std::vector<double>&);
148 virtual double ElderChild(const std::vector<double>&);
149 virtual double SplattingAverage(const std::vector<double>&);
151
152 int NbChilds;
153 unsigned int Operator;
154
155 double Default;
156
157 unsigned int BranchFactor;
158 unsigned int Dimension;
159 unsigned int SplattingFactor;
160
161 unsigned int NumberOfChildren;
162
163 vtkBitArray* Mask;
164};
165
166VTK_ABI_NAMESPACE_END
167#endif // vtkHyperTreeGridEvaluateCoarse_h
dynamic, self-adjusting array of bits
Definition vtkBitArray.h:29
general representation of visualization data
Superclass for algorithms that produce a hyper tree grid as output.
The value of the parent cell is determined from an operation defined on the values of the child cells...
int FillOutputPortInformation(int, vtkInformation *) override
Define default input and output port types.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int ProcessTrees(vtkHyperTreeGrid *, vtkDataObject *) override
Main routine to extract hyper tree grid levels.
virtual void ProcessNode(vtkHyperTreeGridNonOrientedCursor *)
Recursively descend into tree down to leaves.
~vtkHyperTreeGridEvaluateCoarse() override
static vtkHyperTreeGridEvaluateCoarse * New()
Objects for traversal a HyperTreeGrid.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.