VTK  9.1.0
vtkHyperTreeGridEvaluateCoarse.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkHyperTreeGridEvaluateCoarse.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
74#ifndef vtkHyperTreeGridEvaluateCoarse_h
75#define vtkHyperTreeGridEvaluateCoarse_h
76
77#include "vtkFiltersHyperTreeModule.h" // For export macro
79
80#include <vector> // For scratch storage.
81
82class vtkBitArray;
83
85
87
88class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridEvaluateCoarse : public vtkHyperTreeGridAlgorithm
89{
90public:
91 enum
92 {
93 OPERATOR_DON_T_CHANGE_FAST = 0,
94 OPERATOR_DON_T_CHANGE = 1,
95 OPERATOR_MIN = 2,
96 OPERATOR_MAX = 3,
97 OPERATOR_SUM = 4,
98 OPERATOR_AVERAGE = 5,
99 OPERATOR_UNMASKED_AVERAGE = 6,
100 OPERATOR_ELDER_CHILD = 7,
101 OPERATOR_SPLATTING_AVERAGE = 8
102 };
103
106 void PrintSelf(ostream& os, vtkIndent indent) override;
107
109
112 vtkSetMacro(Operator, unsigned int);
113 vtkGetMacro(Operator, unsigned int);
115
117
120 vtkSetMacro(Default, double);
122
123protected:
126
131
133
138
143
144private:
146 void operator=(const vtkHyperTreeGridEvaluateCoarse&) = delete;
147
149
152 virtual double EvalCoarse(const std::vector<double>&);
153
154 virtual double Min(const std::vector<double>&);
155 virtual double Max(const std::vector<double>&);
156 virtual double Sum(const std::vector<double>&);
157 virtual double Average(const std::vector<double>&);
158 virtual double UnmaskedAverage(const std::vector<double>&);
159 virtual double ElderChild(const std::vector<double>&);
160 virtual double SplattingAverage(const std::vector<double>&);
162
163 int NbChilds;
164 unsigned int Operator;
165
166 double Default;
167
168 unsigned int BranchFactor;
169 unsigned int Dimension;
170 unsigned int SplattingFactor;
171
172 unsigned int NumberOfChildren;
173
174 vtkBitArray* Mask;
175};
176
177#endif // vtkHyperTreeGridEvaluateCoarse_h
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:34
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:113
Store vtkAlgorithm input/output information.