66 #ifndef vtkGenericStreamTracer_h
67 #define vtkGenericStreamTracer_h
69 #include "vtkFiltersGenericModule.h"
103 vtkSetVector3Macro(StartPosition,
double);
104 vtkGetVector3Macro(StartPosition,
double);
187 this->SetMaximumPropagationUnit(CELL_LENGTH_UNIT);
208 this->SetMinimumIntegrationStepUnit(LENGTH_UNIT);
212 this->SetMinimumIntegrationStepUnit(CELL_LENGTH_UNIT);
233 this->SetMaximumIntegrationStepUnit(LENGTH_UNIT);
237 this->SetMaximumIntegrationStepUnit(CELL_LENGTH_UNIT);
259 this->SetInitialIntegrationStepUnit(LENGTH_UNIT);
263 this->SetInitialIntegrationStepUnit(CELL_LENGTH_UNIT);
273 vtkSetMacro(MaximumError,
double);
274 vtkGetMacro(MaximumError,
double);
290 vtkSetMacro(TerminalSpeed,
double);
291 vtkGetMacro(TerminalSpeed,
double);
300 this->SetInitialIntegrationStepUnit(unit);
301 this->SetMinimumIntegrationStepUnit(unit);
302 this->SetMaximumIntegrationStepUnit(unit);
318 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
319 vtkGetMacro(IntegrationDirection,
int);
341 vtkSetMacro(RotationScale,
double);
342 vtkGetMacro(RotationScale,
double);
351 vtkGetStringMacro(InputVectorsSelection);
373 vtkErrorMacro(<<
"AddInput() must be called with a vtkGenericDataSet not a vtkDataObject.");
398 vtkSetStringMacro(InputVectorsSelection);
402 double StartPosition[3];
428 double& step,
double& minStep,
double& maxStep,
int direction,
double cellLength,
double speed);
Proxy object to connect input/output ports.
abstract superclass for arrays of numeric data
general representation of visualization data
abstract class to specify dataset behavior
abstract class defined API for attribute data
defines dataset interface
Interface for obtaining interpolated velocity values.
static double ConvertToUnit(IntervalInformation &interval, int unit, double cellLength, double speed)
static const double EPSILON
double GetMaximumPropagation()
void SetIntegratorTypeToRungeKutta2()
void SetIntegrationDirectionToBackward()
void SetMinimumIntegrationStepUnitToCellLengthUnit()
int GetInitialIntegrationStepUnit()
double GetMaximumIntegrationStep()
int GetMaximumIntegrationStepUnit()
void SetInitialIntegrationStepUnitToCellLengthUnit()
char * InputVectorsSelection
void Integrate(vtkGenericDataSet *input0, vtkPolyData *output, vtkDataArray *seedSource, vtkIdList *seedIds, vtkIntArray *integrationDirections, double lastPoint[3], vtkGenericInterpolatedVelocityField *func)
void SetMaximumIntegrationStepUnit(int unit)
void SetSourceData(vtkDataSet *source)
Specify the source object used to generate starting points.
void SetInitialIntegrationStep(double step)
void SetMinimumIntegrationStep(int unit, double step)
Specify the minimum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMinimumIntegrationStepUnitToLengthUnit()
int GetMaximumPropagationUnit()
void SetIntegrationStepUnit(int unit)
Simplified API to set an homogeneous unit across Min/Max/Init IntegrationStepUnit.
vtkIdType MaximumNumberOfSteps
void SetMaximumIntegrationStep(int unit, double step)
Specify the maximum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMaximumIntegrationStep(double step)
void SetIntegrationDirectionToBoth()
void SetIntegratorTypeToRungeKutta4()
void SetIntegratorType(int type)
void SetInitialIntegrationStepUnit(int unit)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetMaximumPropagationUnitToLengthUnit()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetInitialIntegrationStepUnitToTimeUnit()
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Specify the source object used to generate starting points (seeds).
void AddInput(vtkDataObject *)
IntervalInformation MinimumIntegrationStep
void SetMaximumPropagation(double max)
vtkGenericInterpolatedVelocityField * InterpolatorPrototype
IntervalInformation MaximumPropagation
double GetInitialIntegrationStep()
vtkInitialValueProblemSolver * Integrator
void SetMaximumIntegrationStepUnitToCellLengthUnit()
static double ConvertToLength(IntervalInformation &interval, double cellLength, double speed)
int GetMinimumIntegrationStepUnit()
IntervalInformation MaximumIntegrationStep
void SetMinimumIntegrationStep(double step)
static double ConvertToTime(IntervalInformation &interval, double cellLength, double speed)
void SetIntegratorTypeToRungeKutta45()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetMaximumPropagationUnitToTimeUnit()
static double ConvertToCellLength(IntervalInformation &interval, double cellLength, double speed)
void SetMaximumPropagationUnitToCellLengthUnit()
void AddInputData(vtkGenericDataSet *in)
Add a dataset to the list inputs.
void SetInitialIntegrationStepUnitToLengthUnit()
void SetIntegrator(vtkInitialValueProblemSolver *)
Set/get the integrator type to be used in the stream line calculation.
void SelectInputVectors(const char *fieldName)
vtkTypeBool ComputeVorticity
int CheckInputs(vtkGenericInterpolatedVelocityField *&func, vtkInformationVector **inputVector)
void SetMinimumIntegrationStepUnit(int unit)
void SetIntervalInformation(int unit, IntervalInformation ¤tValues)
void GenerateNormals(vtkPolyData *output, double *firstNormal)
void SetIntegrationDirectionToForward()
static vtkGenericStreamTracer * New()
Construct object to start from position (0,0,0), integrate forward, terminal speed 1....
void ConvertIntervals(double &step, double &minStep, double &maxStep, int direction, double cellLength, double speed)
void SetMaximumIntegrationStepUnitToTimeUnit()
void SetMaximumPropagationUnit(int unit)
IntervalInformation InitialIntegrationStep
int GenerateNormalsInIntegrate
void SetMaximumPropagation(int unit, double max)
Specify the maximum length of the streamlines expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT = 1 ...
void SetMaximumIntegrationStepUnitToLengthUnit()
~vtkGenericStreamTracer() override
double GetMinimumIntegrationStep()
void SimpleIntegrate(double seed[3], double lastPoint[3], double delt, vtkGenericInterpolatedVelocityField *func)
void InitializeSeeds(vtkDataArray *&seeds, vtkIdList *&seedIds, vtkIntArray *&integrationDirections)
void CalculateVorticity(vtkGenericAdaptorCell *cell, double pcoords[3], vtkGenericAttribute *attribute, double vorticity[3])
Compute the vorticity at point ‘pcoords’ in cell ‘cell’ for the vector attribute ‘attribute’.
void SetInitialIntegrationStep(int unit, double step)
Specify the initial step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMinimumIntegrationStepUnitToTimeUnit()
void SetInterpolatorPrototype(vtkGenericInterpolatedVelocityField *ivf)
The object used to interpolate the velocity field during integration is of the same class as this pro...
void SetIntervalInformation(int unit, double interval, IntervalInformation ¤tValues)
list of point or cell ids
a simple class to control print indentation
Integrate a set of ordinary differential equations (initial value problem) in time.
dynamic, self-adjusting array of int
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)