86 #ifndef vtkStreamTracer_h 87 #define vtkStreamTracer_h 89 #include "vtkFiltersFlowPathsModule.h" 128 vtkSetVector3Macro(StartPosition,
double);
129 vtkGetVector3Macro(StartPosition,
double);
181 FIXED_REASONS_FOR_TERMINATION_COUNT
197 void SetIntegratorType(
int type);
198 int GetIntegratorType();
200 {this->SetIntegratorType(RUNGE_KUTTA2);};
202 {this->SetIntegratorType(RUNGE_KUTTA4);};
204 {this->SetIntegratorType(RUNGE_KUTTA45);};
211 void SetInterpolatorTypeToDataSetPointLocator();
217 void SetInterpolatorTypeToCellLocator();
223 vtkSetMacro(MaximumPropagation,
double);
224 vtkGetMacro(MaximumPropagation,
double);
233 void SetIntegrationStepUnit(
int unit );
244 vtkSetMacro(InitialIntegrationStep,
double);
245 vtkGetMacro(InitialIntegrationStep,
double);
255 vtkSetMacro(MinimumIntegrationStep,
double);
256 vtkGetMacro(MinimumIntegrationStep,
double);
266 vtkSetMacro(MaximumIntegrationStep,
double);
267 vtkGetMacro(MaximumIntegrationStep,
double);
274 vtkSetMacro(MaximumError,
double);
275 vtkGetMacro(MaximumError,
double);
282 vtkSetMacro(MaximumNumberOfSteps,
vtkIdType);
283 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
290 vtkSetMacro(TerminalSpeed,
double);
291 vtkGetMacro(TerminalSpeed,
double);
298 vtkGetMacro(SurfaceStreamlines,
bool);
299 vtkSetMacro(SurfaceStreamlines,
bool);
300 vtkBooleanMacro(SurfaceStreamlines,
bool);
313 INTERPOLATOR_WITH_CELL_LOCATOR
321 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
322 vtkGetMacro(IntegrationDirection,
int);
324 {this->SetIntegrationDirection(FORWARD);};
326 {this->SetIntegrationDirection(BACKWARD);};
328 {this->SetIntegrationDirection(BOTH);};
337 vtkSetMacro(ComputeVorticity,
bool);
338 vtkGetMacro(ComputeVorticity,
bool);
346 vtkSetMacro(RotationScale,
double);
347 vtkGetMacro(RotationScale,
double);
365 void SetInterpolatorType(
int interpType );
376 typedef bool (*CustomTerminationCallbackType)(
void * clientdata,
379 int integrationDirection);
388 void AddCustomTerminationCallback(
389 CustomTerminationCallbackType callback,
void* clientdata,
int reasonForTermination);
401 { vtkErrorMacro( <<
"AddInput() must be called with a vtkDataSet not a vtkDataObject."); };
417 const char *vecFieldName,
420 double& integrationTime);
421 double SimpleIntegrate(
double seed[3],
427 void GenerateNormals(
vtkPolyData* output,
double* firstNormal,
const char *vecName);
432 double StartPosition[3];
450 void ConvertIntervals(
double& step,
double& minStep,
double& maxStep,
452 static double ConvertToLength(
double interval,
int unit,
double cellLength );
485 friend class PStreamTracerUtils;
void SetIntegrationDirectionToBoth()
Specify whether the streamline is integrated in the upstream or downstream direction.
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.
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.
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
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
double MaximumIntegrationStep
void SetIntegratorTypeToRungeKutta2()
Set/get the integrator type to be used for streamline generation.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetIntegratorTypeToRungeKutta45()
Set/get the integrator type to be used for streamline generation.
double InitialIntegrationStep
vtkAbstractInterpolatedVelocityField * InterpolatorPrototype
std::vector< void * > CustomTerminationClientData
void SetIntegrationDirectionToBackward()
Specify whether the streamline is integrated in the upstream or downstream direction.
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.