69 #ifndef vtkGenericStreamTracer_h
70 #define vtkGenericStreamTracer_h
72 #include "vtkFiltersGenericModule.h"
106 vtkSetVector3Macro(StartPosition,
double);
107 vtkGetVector3Macro(StartPosition,
double);
166 void SetIntegratorType(
int type);
167 int GetIntegratorType();
169 {this->SetIntegratorType(RUNGE_KUTTA2);};
171 {this->SetIntegratorType(RUNGE_KUTTA4);};
173 {this->SetIntegratorType(RUNGE_KUTTA45);};
184 void SetMaximumPropagation(
int unit,
double max);
185 void SetMaximumPropagation(
double max);
186 void SetMaximumPropagationUnit(
int unit);
187 int GetMaximumPropagationUnit();
188 double GetMaximumPropagation();
190 {this->SetMaximumPropagationUnit(TIME_UNIT);};
192 {this->SetMaximumPropagationUnit(LENGTH_UNIT);};
194 {this->SetMaximumPropagationUnit(CELL_LENGTH_UNIT);};
206 void SetMinimumIntegrationStep(
int unit,
double step);
207 void SetMinimumIntegrationStepUnit(
int unit);
208 void SetMinimumIntegrationStep(
double step);
209 int GetMinimumIntegrationStepUnit();
210 double GetMinimumIntegrationStep();
212 {this->SetMinimumIntegrationStepUnit(TIME_UNIT);};
214 {this->SetMinimumIntegrationStepUnit(LENGTH_UNIT);};
216 {this->SetMinimumIntegrationStepUnit(CELL_LENGTH_UNIT);};
228 void SetMaximumIntegrationStep(
int unit,
double step);
229 void SetMaximumIntegrationStepUnit(
int unit);
230 void SetMaximumIntegrationStep(
double step);
231 int GetMaximumIntegrationStepUnit();
232 double GetMaximumIntegrationStep();
234 {this->SetMaximumIntegrationStepUnit(TIME_UNIT);};
236 {this->SetMaximumIntegrationStepUnit(LENGTH_UNIT);};
238 {this->SetMaximumIntegrationStepUnit(CELL_LENGTH_UNIT);};
251 void SetInitialIntegrationStep(
int unit,
double step);
252 void SetInitialIntegrationStepUnit(
int unit);
253 void SetInitialIntegrationStep(
double step);
254 int GetInitialIntegrationStepUnit();
255 double GetInitialIntegrationStep();
257 {this->SetInitialIntegrationStepUnit(TIME_UNIT);};
259 {this->SetInitialIntegrationStepUnit(LENGTH_UNIT);};
261 {this->SetInitialIntegrationStepUnit(CELL_LENGTH_UNIT);};
271 vtkGetMacro(MaximumError,
double);
279 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
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]);
396 void SimpleIntegrate(
double seed[3],
402 void GenerateNormals(
vtkPolyData* output,
double* firstNormal);
406 vtkSetStringMacro(InputVectorsSelection);
411 double StartPosition[3];
429 void SetIntervalInformation(
int unit,
double interval,
433 double cellLength,
double speed);
435 double cellLength,
double speed);
437 double cellLength,
double speed);
439 double cellLength,
double speed);
440 void ConvertIntervals(
double& step,
double& minStep,
double& maxStep,
void SetMinimumIntegrationStepUnitToLengthUnit()
Specify the minimum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMaximumPropagationUnitToTimeUnit()
Specify the maximum length of the streamlines expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT = 1 ...
void SetIntegrationDirectionToBackward()
Specify whether the streamtrace will be generated in the upstream or downstream direction.
static const double EPSILON
void SelectInputVectors(const char *fieldName)
If you want to generate traces using an arbitrary vector array, then set its name here...
vtkGenericInterpolatedVelocityField * InterpolatorPrototype
abstract class to specify dataset behavior
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
void SetInitialIntegrationStepUnitToTimeUnit()
Specify the initial step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetInitialIntegrationStepUnitToCellLengthUnit()
Specify the initial step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMinimumIntegrationStepUnitToTimeUnit()
Specify the minimum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void AddInputData(vtkDataObject *)
Assign a data object as input.
void SetIntegrationDirectionToBoth()
Specify whether the streamtrace will be generated in the upstream or downstream direction.
vtkInitialValueProblemSolver * Integrator
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract class defined API for attribute data
void AddInput(vtkDataObject *)
IntervalInformation MinimumIntegrationStep
Proxy object to connect input/output ports.
static vtkPolyDataAlgorithm * New()
dynamic, self-adjusting array of int
Superclass for algorithms that produce only polydata as output.
void SetInitialIntegrationStepUnitToLengthUnit()
Specify the initial step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
a simple class to control print indentation
list of point or cell ids
IntervalInformation MaximumIntegrationStep
abstract superclass for arrays of numeric data
void SetMaximumIntegrationStepUnitToCellLengthUnit()
Specify the maximum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
char * InputVectorsSelection
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetIntegrationDirectionToForward()
Specify whether the streamtrace will be generated in the upstream or downstream direction.
void SetIntegratorTypeToRungeKutta2()
Set/get the integrator type to be used in the stream line calculation.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetIntegratorTypeToRungeKutta4()
Set/get the integrator type to be used in the stream line calculation.
void SetMaximumPropagationUnitToLengthUnit()
Specify the maximum length of the streamlines expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT = 1 ...
IntervalInformation MaximumPropagation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetIntegratorTypeToRungeKutta45()
Set/get the integrator type to be used in the stream line calculation.
defines dataset interface
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
IntervalInformation InitialIntegrationStep
general representation of visualization data
void SetMaximumPropagationUnitToCellLengthUnit()
Specify the maximum length of the streamlines expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT = 1 ...
vtkIdType MaximumNumberOfSteps
void SetMaximumIntegrationStepUnitToLengthUnit()
Specify the maximum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
Interface for obtaining interpolated velocity values.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetMaximumIntegrationStepUnitToTimeUnit()
Specify the maximum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
void SetMinimumIntegrationStepUnitToCellLengthUnit()
Specify the minimum step used in the integration expressed in one of the: TIME_UNIT = 0 LENGTH_UNIT =...
Integrate a set of ordinary differential equations (initial value problem) in time.
void SetIntegrationStepUnit(int unit)
Simplified API to set an homogeneous unit across Min/Max/Init IntegrationStepUnit.
int GenerateNormalsInIntegrate