VTK  9.5.2
vtkStreamTracer.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
81
82#ifndef vtkStreamTracer_h
83#define vtkStreamTracer_h
84
85#include "vtkFiltersFlowPathsModule.h" // For export macro
87
88#include "vtkDataSetAttributesFieldList.h" // Needed to identify common data arrays
89#include "vtkInitialValueProblemSolver.h" // Needed for constants
90
91VTK_ABI_NAMESPACE_BEGIN
94class vtkDataArray;
96class vtkDoubleArray;
97class vtkExecutive;
98class vtkGenericCell;
99class vtkIdList;
100class vtkIntArray;
101class vtkPoints;
102
103VTK_ABI_NAMESPACE_END
104#include <vector> // for std::vector
105
106// Helper struct to convert between different length scales.
107VTK_ABI_NAMESPACE_BEGIN
108struct VTKFILTERSFLOWPATHS_EXPORT vtkIntervalInformation
109{
110 double Interval;
111 int Unit;
112
113 static double ConvertToLength(double interval, int unit, double cellLength);
114 static double ConvertToLength(vtkIntervalInformation& interval, double cellLength);
115};
116
128 void* clientdata, vtkPoints* points, vtkDataArray* velocity, int integrationDirection);
129
130class VTKFILTERSFLOWPATHS_EXPORT vtkStreamTracer : public vtkPolyDataAlgorithm
131{
132public:
141
143
147 void PrintSelf(ostream& os, vtkIndent indent) override;
149
151
156 vtkSetVector3Macro(StartPosition, double);
157 vtkGetVector3Macro(StartPosition, double);
159
161
170
177
178 // The previously-supported TIME_UNIT is excluded in this current
179 // enumeration definition because the underlying step size is ALWAYS in
180 // arc length unit (LENGTH_UNIT) while the 'real' time interval (virtual
181 // for steady flows) that a particle actually takes to trave in a single
182 // step is obtained by dividing the arc length by the LOCAL speed. The
183 // overall elapsed time (i.e., the life span) of the particle is the sum
184 // of those individual step-wise time intervals. The arc-length-to-time
185 // conversion only occurs for vorticity computation and for generating a
186 // point data array named 'IntegrationTime'.
187 enum Units
188 {
191 };
192
201