VTK  9.7.20261026
vtkLiutex.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
58
59#ifndef vtkLiutex_h
60#define vtkLiutex_h
61
62#include "vtkFiltersFlowPathsModule.h" // For export macro
64
65#include <string> // For std::string
66
67VTK_ABI_NAMESPACE_BEGIN
68class vtkDataSet;
69
70class VTKFILTERSFLOWPATHS_EXPORT vtkLiutex : public vtkPassInputTypeAlgorithm
71{
72public:
73 static vtkLiutex* New();
75 void PrintSelf(ostream& os, vtkIndent indent) override;
76
78
81 vtkSetMacro(ComputeLiutexVector, bool);
82 vtkGetMacro(ComputeLiutexVector, bool);
83 vtkBooleanMacro(ComputeLiutexVector, bool);
85
87
90 vtkSetMacro(ComputeLiutexMagnitude, bool);
91 vtkGetMacro(ComputeLiutexMagnitude, bool);
92 vtkBooleanMacro(ComputeLiutexMagnitude, bool);
94
96
99 vtkSetMacro(ComputeOmegaLiutex, bool);
100 vtkGetMacro(ComputeOmegaLiutex, bool);
101 vtkBooleanMacro(ComputeOmegaLiutex, bool);
103
105
109 vtkSetMacro(LiutexVectorArrayName, std::string);
110 vtkGetMacro(LiutexVectorArrayName, std::string);
111 vtkSetMacro(LiutexMagnitudeArrayName, std::string);
112 vtkGetMacro(LiutexMagnitudeArrayName, std::string);
113 vtkSetMacro(OmegaLiutexArrayName, std::string);
114 vtkGetMacro(OmegaLiutexArrayName, std::string);
116
118
122 vtkSetClampMacro(OmegaLiutexB0, double, 0.0, VTK_DOUBLE_MAX);
123 vtkGetMacro(OmegaLiutexB0, double);
125
127
131 vtkSetMacro(OmegaLiutexEpsilon, double);
132 vtkGetMacro(OmegaLiutexEpsilon, double);
134
136
140 vtkSetMacro(FasterApproximation, bool);
141 vtkGetMacro(FasterApproximation, bool);
142 vtkBooleanMacro(FasterApproximation, bool);
144
145protected:
147 ~vtkLiutex() override;
148
150 int FillInputPortInformation(int port, vtkInformation* info) override;
151
152private:
153 vtkLiutex(const vtkLiutex&) = delete;
154 void operator=(const vtkLiutex&) = delete;
155
156 struct BlockState;
157 // Adds the requested arrays to dataSet, which shares its arrays with the input.
158 bool ProcessDataSet(vtkDataSet* dataSet, BlockState& state, double& maxLambdaCi2);
159
160 bool ComputeLiutexVector = true;
161 bool ComputeLiutexMagnitude = true;
162 bool ComputeOmegaLiutex = false;
163 std::string LiutexVectorArrayName = "Liutex";
164 std::string LiutexMagnitudeArrayName = "LiutexMagnitude";
165 std::string OmegaLiutexArrayName = "OmegaLiutex";
166 double OmegaLiutexB0 = 0.001;
167 double OmegaLiutexEpsilon = -1.0;
168 bool FasterApproximation = false;
169};
170
171VTK_ABI_NAMESPACE_END
172#endif
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkLiutex * New()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
~vtkLiutex() override
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
#define VTK_DOUBLE_MAX
Definition vtkType.h:202