VTK  9.2.6
vtkGradientFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkGradientFilter.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=========================================================================*/
15/*----------------------------------------------------------------------------
16 Copyright (c) Sandia Corporation
17 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
18----------------------------------------------------------------------------*/
19
58#ifndef vtkGradientFilter_h
59#define vtkGradientFilter_h
60
61#include "vtkDataSetAlgorithm.h"
62#include "vtkFiltersGeneralModule.h" // For export macro
63
65
66class VTKFILTERSGENERAL_EXPORT vtkGradientFilter : public vtkDataSetAlgorithm
67{
68public:
70
75 void PrintSelf(ostream& os, vtkIndent indent) override;
77
80 {
81 All = 0,
82 Patch = 1,
83 DataSetMax = 2
84 };
85
89 {
90 Zero = 0,
91 NaN = 1,
92 DataTypeMin = 2,
93 DataTypeMax = 3
94 };
95
97
103 virtual void SetInputScalars(int fieldAssociation, const char* name);
104 virtual void SetInputScalars(int fieldAssociation, int fieldAttributeType);
106
108
113 vtkGetStringMacro(ResultArrayName);
114 vtkSetStringMacro(ResultArrayName);
116
118
123 vtkGetStringMacro(DivergenceArrayName);
124 vtkSetStringMacro(DivergenceArrayName);
126
128
133 vtkGetStringMacro(VorticityArrayName);
134 vtkSetStringMacro(VorticityArrayName);
136
138
143 vtkGetStringMacro(QCriterionArrayName);
144 vtkSetStringMacro(QCriterionArrayName);
146
148
157 vtkGetMacro(FasterApproximation, vtkTypeBool);
158 vtkSetMacro(FasterApproximation, vtkTypeBool);
159 vtkBooleanMacro(FasterApproximation, vtkTypeBool);
161
163
168 vtkSetMacro(ComputeGradient, vtkTypeBool);
169 vtkGetMacro(ComputeGradient, vtkTypeBool);
170 vtkBooleanMacro(ComputeGradient, vtkTypeBool);
172
174
180 vtkSetMacro(ComputeDivergence, vtkTypeBool);
181 vtkGetMacro(ComputeDivergence, vtkTypeBool);
182 vtkBooleanMacro(ComputeDivergence, vtkTypeBool);
184
186
192 vtkSetMacro(ComputeVorticity, vtkTypeBool);
193 vtkGetMacro(ComputeVorticity, vtkTypeBool);
194 vtkBooleanMacro(ComputeVorticity, vtkTypeBool);
196
198
205 vtkSetMacro(ComputeQCriterion, vtkTypeBool);
206 vtkGetMacro(ComputeQCriterion, vtkTypeBool);
207 vtkBooleanMacro(ComputeQCriterion, vtkTypeBool);
209
211
215 vtkSetClampMacro(ContributingCellOption, int, 0, 2);
216 vtkGetMacro(ContributingCellOption, int);
218
220
225 vtkSetClampMacro(ReplacementValueOption, int, 0, 3);
226 vtkGetMacro(ReplacementValueOption, int);
228
229protected:
232
235
241 virtual int ComputeUnstructuredGridGradient(vtkDataArray* Array, int fieldAssociation,
242 vtkDataSet* input, bool computeVorticity, bool computeQCriterion, bool computeDivergence,
243 vtkDataSet* output);
244
250 virtual int ComputeRegularGridGradient(vtkDataArray* Array, int* dims, int fieldAssociation,
251 bool computeVorticity, bool computeQCriterion, bool computeDivergence, vtkDataSet* output,
252 vtkUnsignedCharArray* ghosts, unsigned char hiddenGhost);
253
261
267
273
279
285
296
302
309
316
323
329
336
337private:
338 vtkGradientFilter(const vtkGradientFilter&) = delete;
339 void operator=(const vtkGradientFilter&) = delete;
340};
341
342#endif //_vtkGradientFilter_h
abstract superclass for arrays of numeric data
Superclass for algorithms that produce output of the same type as input.
abstract class to specify dataset behavior
Definition vtkDataSet.h:72
A general filter for gradient estimation.
char * QCriterionArrayName
If non-null then it contains the name of the outputted Q criterion array.
~vtkGradientFilter() override
int ReplacementValueOption
Option to specify what replacement value or entities that don't have any gradient computed over them ...
char * VorticityArrayName
If non-null then it contains the name of the outputted vorticity array.
virtual void SetInputScalars(int fieldAssociation, int fieldAttributeType)
These are basically a convenience method that calls SetInputArrayToProcess to set the array used as t...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, obtaining type information, and printing.
vtkTypeBool ComputeVorticity
Flag to indicate that vorticity/curl of the input vector is to be computed.
vtkTypeBool ComputeGradient
Flag to indicate that the gradient of the input vector is to be computed.
int ContributingCellOption
Option to specify what cells to include in the gradient computation.
vtkTypeBool ComputeDivergence
Flag to indicate that the divergence of the input vector is to be computed.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
char * ResultArrayName
If non-null then it contains the name of the outputted gradient array.
static vtkGradientFilter * New()
Standard methods for instantiation, obtaining type information, and printing.
ContributingCellEnum
Options to choose what cells contribute to the gradient calculation.
int GetOutputArrayType(vtkDataArray *inputArray)
Get the proper array type to compute requested derivative quantities for.
virtual int ComputeUnstructuredGridGradient(vtkDataArray *Array, int fieldAssociation, vtkDataSet *input, bool computeVorticity, bool computeQCriterion, bool computeDivergence, vtkDataSet *output)
Compute the gradients for grids that are not a vtkImageData, vtkRectilinearGrid, or vtkStructuredGrid...
char * DivergenceArrayName
If non-null then it contains the name of the outputted divergence array.
virtual int ComputeRegularGridGradient(vtkDataArray *Array, int *dims, int fieldAssociation, bool computeVorticity, bool computeQCriterion, bool computeDivergence, vtkDataSet *output, vtkUnsignedCharArray *ghosts, unsigned char hiddenGhost)
Compute the gradients for either a vtkImageData, vtkRectilinearGrid or a vtkStructuredGrid.
virtual void SetInputScalars(int fieldAssociation, const char *name)
These are basically a convenience method that calls SetInputArrayToProcess to set the array used as t...
vtkTypeBool FasterApproximation
When this flag is on (default is off), the gradient filter will provide a less accurate (but close) a...
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
ReplacementValueEnum
The replacement value or entities that don't have any gradient computed over them based on the Contri...
vtkTypeBool ComputeQCriterion
Flag to indicate that the Q-criterion of the input vector is to be computed.
a simple class to control print indentation
Definition vtkIndent.h:49
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:69