82 #ifndef vtkStreamTracer_h
83 #define vtkStreamTracer_h
85 #include "vtkFiltersFlowPathsModule.h"
91 VTK_ABI_NAMESPACE_BEGIN
103 VTK_ABI_NAMESPACE_END
107 VTK_ABI_NAMESPACE_BEGIN
113 static double ConvertToLength(
double interval,
int unit,
double cellLength);
156 vtkSetVector3Macro(StartPosition,
double);
157 vtkGetVector3Macro(StartPosition,
double);
210 FIXED_REASONS_FOR_TERMINATION_COUNT
226 void SetIntegratorType(
int type);
227 int GetIntegratorType();
242 void SetInterpolatorTypeToDataSetPointLocator();
250 void SetInterpolatorTypeToCellLocator();
256 vtkSetMacro(MaximumPropagation,
double);
257 vtkGetMacro(MaximumPropagation,
double);
266 void SetIntegrationStepUnit(
int unit);
277 vtkSetMacro(InitialIntegrationStep,
double);
278 vtkGetMacro(InitialIntegrationStep,
double);
288 vtkSetMacro(MinimumIntegrationStep,
double);
289 vtkGetMacro(MinimumIntegrationStep,
double);
299 vtkSetMacro(MaximumIntegrationStep,
double);
300 vtkGetMacro(MaximumIntegrationStep,
double);
307 vtkSetMacro(MaximumError,
double);
308 vtkGetMacro(MaximumError,
double);
320 vtkSetMacro(MaximumNumberOfSteps,
vtkIdType);
321 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
329 vtkSetMacro(TerminalSpeed,
double);
330 vtkGetMacro(TerminalSpeed,
double);
338 vtkGetMacro(SurfaceStreamlines,
bool);
339 vtkSetMacro(SurfaceStreamlines,
bool);
340 vtkBooleanMacro(SurfaceStreamlines,
bool);
353 INTERPOLATOR_WITH_CELL_LOCATOR
364 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
365 vtkGetMacro(IntegrationDirection,
int);
377 vtkSetMacro(ComputeVorticity,
bool);
378 vtkGetMacro(ComputeVorticity,
bool);
386 vtkSetMacro(RotationScale,
double);
387 vtkGetMacro(RotationScale,
double);
410 void SetInterpolatorType(
int interpType);
417 vtkGetMacro(ForceSerialExecution,
bool);
418 vtkSetMacro(ForceSerialExecution,
bool);
419 vtkBooleanMacro(ForceSerialExecution,
bool);
430 void AddCustomTerminationCallback(
441 void ConvertIntervals(
442 double& step,
double& minStep,
double& maxStep,
int direction,
double cellLength);
449 void GenerateNormals(
vtkPolyData* output,
double* firstNormal,
const char* vecName);
450 void CalculateVorticity(
465 vtkSetMacro(UseLocalSeedSource,
bool);
466 vtkGetMacro(UseLocalSeedSource,
bool);
467 vtkBooleanMacro(UseLocalSeedSource,
bool);
480 vtkErrorMacro(<<
"AddInput() must be called with a vtkDataSet not a vtkDataObject.");
489 const char* vecFieldName,
double& propagation,
vtkIdType& numSteps,
double& integrationTime,
490 std::vector<CustomTerminationCallbackType>& customTerminationCallback,
491 std::vector<void*>& customTerminationClientData, std::vector<int>& customReasonForTermination);
493 double SimpleIntegrate(
double seed[3],
double lastPoint[3],
double stepSize,
500 double StartPosition[3];
556 friend class PStreamTracerUtils;
563 VTK_ABI_NAMESPACE_END
void SetIntegrationDirectionToBoth()
Specify whether the streamline is integrated in the upstream or downstream direction, or in both directions.
static const double EPSILON
represent and manipulate point attribute data
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
abstract class to specify dataset behavior
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
helps manage arrays from multiple vtkDataSetAttributes.
An abstract class for obtaining the interpolated velocity values at a point.
void AddInput(vtkDataObject *)
bool GenerateNormalsInIntegrate
vtkCompositeDataSet * InputData
concrete dataset represents vertices, lines, polygons, and triangle strips
Superclass for all pipeline executives in VTK.
double MinimumIntegrationStep
provides thread-safe access to cells
vtkIdType MaximumNumberOfSteps
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
static vtkPolyDataAlgorithm * New()
void SetIntegrationDirectionToForward()
Specify whether the streamline is integrated in the upstream or downstream direction, or in both directions.
std::vector< int > CustomReasonForTermination
dynamic, self-adjusting array of int
abstract superclass for composite (multi-block or AMR) datasets
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
int GetIntegrationStepUnit()
list of point or cell ids
bool(* CustomTerminationCallbackType)(void *clientdata, vtkPoints *points, vtkDataArray *velocity, int integrationDirection)
Used to specify custom conditions which are evaluated to determine whether a streamline should be ter...
vtkInitialValueProblemSolver * Integrator
abstract superclass for arrays of numeric data
void SetIntegratorTypeToRungeKutta4()
Set/get the integrator type to be used for streamline generation.
std::vector< CustomTerminationCallbackType > CustomTerminationCallback
represent and manipulate attribute data in a dataset
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
double MaximumIntegrationStep
void SetIntegratorTypeToRungeKutta2()
Set/get the integrator type to be used for streamline generation.
void SetIntegratorTypeToRungeKutta45()
Set/get the integrator type to be used for streamline generation.
bool ForceSerialExecution
double InitialIntegrationStep
vtkAbstractInterpolatedVelocityField * InterpolatorPrototype
std::vector< void * > CustomTerminationClientData
vtkDataSetAttributesFieldList InputPD
void SetIntegrationDirectionToBackward()
Specify whether the streamline is integrated in the upstream or downstream direction, or in both directions.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
double MaximumPropagation
bool HasMatchingPointAttributes
general representation of visualization data
represent and manipulate 3D points
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Integrate a set of ordinary differential equations (initial value problem) in time.