69 #ifndef vtkGenericStreamTracer_h
70 #define vtkGenericStreamTracer_h
72 #include "vtkFiltersGenericModule.h"
106 vtkSetVector3Macro(StartPosition,
double);
107 vtkGetVector3Macro(StartPosition,
double);
169 {this->SetIntegratorType(RUNGE_KUTTA2);};
171 {this->SetIntegratorType(RUNGE_KUTTA4);};
173 {this->SetIntegratorType(RUNGE_KUTTA45);};
190 {this->SetMaximumPropagationUnit(TIME_UNIT);};
192 {this->SetMaximumPropagationUnit(LENGTH_UNIT);};
194 {this->SetMaximumPropagationUnit(CELL_LENGTH_UNIT);};
212 {this->SetMinimumIntegrationStepUnit(TIME_UNIT);};
214 {this->SetMinimumIntegrationStepUnit(LENGTH_UNIT);};
216 {this->SetMinimumIntegrationStepUnit(CELL_LENGTH_UNIT);};
234 {this->SetMaximumIntegrationStepUnit(TIME_UNIT);};
236 {this->SetMaximumIntegrationStepUnit(LENGTH_UNIT);};
238 {this->SetMaximumIntegrationStepUnit(CELL_LENGTH_UNIT);};
257 {this->SetInitialIntegrationStepUnit(TIME_UNIT);};
259 {this->SetInitialIntegrationStepUnit(LENGTH_UNIT);};
261 {this->SetInitialIntegrationStepUnit(CELL_LENGTH_UNIT);};
271 vtkGetMacro(MaximumError,
double);
288 vtkGetMacro(TerminalSpeed,
double);
297 this->SetInitialIntegrationStepUnit(unit);
298 this->SetMinimumIntegrationStepUnit(unit);
299 this->SetMaximumIntegrationStepUnit(unit);
315 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
316 vtkGetMacro(IntegrationDirection,
int);
318 {this->SetIntegrationDirection(FORWARD);};
320 {this->SetIntegrationDirection(BACKWARD);};
322 {this->SetIntegrationDirection(BOTH);};
332 vtkGetMacro(ComputeVorticity,
int);
342 vtkGetMacro(RotationScale,
double);
353 {this->SetInputVectorsSelection(fieldName);}
373 { vtkErrorMacro( <<
"AddInput() must be called with a vtkGenericDataSet not a vtkDataObject."); };
387 double vorticity[3]);
406 vtkSetStringMacro(InputVectorsSelection);
411 double StartPosition[3];
433 double cellLength,
double speed);
435 double cellLength,
double speed);
437 double cellLength,
double speed);
439 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 PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
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)
int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
void SetMaximumPropagationUnitToLengthUnit()
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()
void SetMaximumPropagationUnitToTimeUnit()
static double ConvertToCellLength(IntervalInformation &interval, double cellLength, double speed)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
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)
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()
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 *)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.