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();
224 vtkGetMacro(MaximumPropagation,
double);
233 void SetIntegrationStepUnit(
int unit );
245 vtkGetMacro(InitialIntegrationStep,
double);
256 vtkGetMacro(MinimumIntegrationStep,
double);
267 vtkGetMacro(MaximumIntegrationStep,
double);
275 vtkGetMacro(MaximumError,
double);
283 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
291 vtkGetMacro(TerminalSpeed,
double);
298 vtkGetMacro(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);};
338 vtkGetMacro(ComputeVorticity,
bool);
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
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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.