66 #ifndef vtkGenericStreamTracer_h 67 #define vtkGenericStreamTracer_h 69 #include "vtkFiltersGenericModule.h" 103 vtkSetVector3Macro(StartPosition,
double);
104 vtkGetVector3Macro(StartPosition,
double);
163 void SetIntegratorType(
int type);
164 int GetIntegratorType();
166 {this->SetIntegratorType(RUNGE_KUTTA2);};
168 {this->SetIntegratorType(RUNGE_KUTTA4);};
170 {this->SetIntegratorType(RUNGE_KUTTA45);};
181 void SetMaximumPropagation(
int unit,
double max);
182 void SetMaximumPropagation(
double max);
183 void SetMaximumPropagationUnit(
int unit);
184 int GetMaximumPropagationUnit();
185 double GetMaximumPropagation();
187 {this->SetMaximumPropagationUnit(TIME_UNIT);};
189 {this->SetMaximumPropagationUnit(LENGTH_UNIT);};
191 {this->SetMaximumPropagationUnit(CELL_LENGTH_UNIT);};
203 void SetMinimumIntegrationStep(
int unit,
double step);
204 void SetMinimumIntegrationStepUnit(
int unit);
205 void SetMinimumIntegrationStep(
double step);
206 int GetMinimumIntegrationStepUnit();
207 double GetMinimumIntegrationStep();
209 {this->SetMinimumIntegrationStepUnit(TIME_UNIT);};
211 {this->SetMinimumIntegrationStepUnit(LENGTH_UNIT);};
213 {this->SetMinimumIntegrationStepUnit(CELL_LENGTH_UNIT);};
225 void SetMaximumIntegrationStep(
int unit,
double step);
226 void SetMaximumIntegrationStepUnit(
int unit);
227 void SetMaximumIntegrationStep(
double step);
228 int GetMaximumIntegrationStepUnit();
229 double GetMaximumIntegrationStep();
231 {this->SetMaximumIntegrationStepUnit(TIME_UNIT);};
233 {this->SetMaximumIntegrationStepUnit(LENGTH_UNIT);};
235 {this->SetMaximumIntegrationStepUnit(CELL_LENGTH_UNIT);};
248 void SetInitialIntegrationStep(
int unit,
double step);
249 void SetInitialIntegrationStepUnit(
int unit);
250 void SetInitialIntegrationStep(
double step);
251 int GetInitialIntegrationStepUnit();
252 double GetInitialIntegrationStep();
254 {this->SetInitialIntegrationStepUnit(TIME_UNIT);};
256 {this->SetInitialIntegrationStepUnit(LENGTH_UNIT);};
258 {this->SetInitialIntegrationStepUnit(CELL_LENGTH_UNIT);};
268 vtkGetMacro(MaximumError,
double);
276 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
285 vtkGetMacro(TerminalSpeed,
double);
294 this->SetInitialIntegrationStepUnit(unit);
295 this->SetMinimumIntegrationStepUnit(unit);
296 this->SetMaximumIntegrationStepUnit(unit);
312 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
313 vtkGetMacro(IntegrationDirection,
int);
315 {this->SetIntegrationDirection(FORWARD);};
317 {this->SetIntegrationDirection(BACKWARD);};
319 {this->SetIntegrationDirection(BOTH);};
329 vtkGetMacro(ComputeVorticity,
int);
339 vtkGetMacro(RotationScale,
double);
350 {this->SetInputVectorsSelection(fieldName);}
370 { vtkErrorMacro( <<
"AddInput() must be called with a vtkGenericDataSet not a vtkDataObject."); };
384 double vorticity[3]);
393 void SimpleIntegrate(
double seed[3],
399 void GenerateNormals(
vtkPolyData* output,
double* firstNormal);
403 vtkSetStringMacro(InputVectorsSelection);
408 double StartPosition[3];
426 void SetIntervalInformation(
int unit,
double interval,
430 double cellLength,
double speed);
432 double cellLength,
double speed);
434 double cellLength,
double speed);
436 double cellLength,
double speed);
437 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
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