VTK  9.3.20240329
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 
70 VTK_ABI_NAMESPACE_BEGIN
71 class vtkBitArray;
72 
73 class vtkHyperTreeGrid;
74 
76 
77 class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridEvaluateCoarse : public vtkHyperTreeGridAlgorithm
78 {
79 public:
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 
112 protected:
115 
120 
122 
127 
132 
133 private:
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 
166 VTK_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.
static vtkHyperTreeGridEvaluateCoarse * New()
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
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.