94 #ifndef vtkStreamTracer_h
95 #define vtkStreamTracer_h
97 #include "vtkFiltersFlowPathsModule.h"
122 static double ConvertToLength(
double interval,
int unit,
double cellLength);
165 vtkSetVector3Macro(StartPosition,
double);
166 vtkGetVector3Macro(StartPosition,
double);
219 FIXED_REASONS_FOR_TERMINATION_COUNT
235 void SetIntegratorType(
int type);
236 int GetIntegratorType();
251 void SetInterpolatorTypeToDataSetPointLocator();
259 void SetInterpolatorTypeToCellLocator();
265 vtkSetMacro(MaximumPropagation,
double);
266 vtkGetMacro(MaximumPropagation,
double);
275 void SetIntegrationStepUnit(
int unit);
286 vtkSetMacro(InitialIntegrationStep,
double);
287 vtkGetMacro(InitialIntegrationStep,
double);
297 vtkSetMacro(MinimumIntegrationStep,
double);
298 vtkGetMacro(MinimumIntegrationStep,
double);
308 vtkSetMacro(MaximumIntegrationStep,
double);
309 vtkGetMacro(MaximumIntegrationStep,
double);
316 vtkSetMacro(MaximumError,
double);
317 vtkGetMacro(MaximumError,
double);
329 vtkSetMacro(MaximumNumberOfSteps,
vtkIdType);
330 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
338 vtkSetMacro(TerminalSpeed,
double);
339 vtkGetMacro(TerminalSpeed,
double);
346 vtkGetMacro(SurfaceStreamlines,
bool);
347 vtkSetMacro(SurfaceStreamlines,
bool);
348 vtkBooleanMacro(SurfaceStreamlines,
bool);
361 INTERPOLATOR_WITH_CELL_LOCATOR
372 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
373 vtkGetMacro(IntegrationDirection,
int);
385 vtkSetMacro(ComputeVorticity,
bool);
386 vtkGetMacro(ComputeVorticity,
bool);
394 vtkSetMacro(RotationScale,
double);
395 vtkGetMacro(RotationScale,
double);
418 void SetInterpolatorType(
int interpType);
425 vtkGetMacro(ForceSerialExecution,
bool);
426 vtkSetMacro(ForceSerialExecution,
bool);
427 vtkBooleanMacro(ForceSerialExecution,
bool);
438 void AddCustomTerminationCallback(
449 void ConvertIntervals(
450 double& step,
double& minStep,
double& maxStep,
int direction,
double cellLength);
457 void GenerateNormals(
vtkPolyData* output,
double* firstNormal,
const char* vecName);
458 void CalculateVorticity(
473 vtkSetMacro(UseLocalSeedSource,
bool);
474 vtkGetMacro(UseLocalSeedSource,
bool);
475 vtkBooleanMacro(UseLocalSeedSource,
bool);
488 vtkErrorMacro(<<
"AddInput() must be called with a vtkDataSet not a vtkDataObject.");
497 const char* vecFieldName,
double& propagation,
vtkIdType& numSteps,
double& integrationTime,
498 std::vector<CustomTerminationCallbackType>& customTerminationCallback,
499 std::vector<void*>& customTerminationClientData, std::vector<int>& customReasonForTermination);
501 double SimpleIntegrate(
double seed[3],
double lastPoint[3],
double stepSize,
508 double StartPosition[3];
564 friend class PStreamTracerUtils;
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.