Go to the documentation of this file.
86 #ifndef vtkStreamTracer_h
87 #define vtkStreamTracer_h
89 #include "vtkFiltersFlowPathsModule.h"
124 vtkSetVector3Macro(StartPosition,
double);
125 vtkGetVector3Macro(StartPosition,
double);
195 {this->SetIntegratorType(RUNGE_KUTTA2);};
197 {this->SetIntegratorType(RUNGE_KUTTA4);};
199 {this->SetIntegratorType(RUNGE_KUTTA45);};
219 vtkGetMacro(MaximumPropagation,
double);
240 vtkGetMacro(InitialIntegrationStep,
double);
251 vtkGetMacro(MinimumIntegrationStep,
double);
262 vtkGetMacro(MaximumIntegrationStep,
double);
270 vtkGetMacro(MaximumError,
double);
286 vtkGetMacro(TerminalSpeed,
double);
293 vtkGetMacro(SurfaceStreamlines,
bool);
308 INTERPOLATOR_WITH_CELL_LOCATOR
316 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
317 vtkGetMacro(IntegrationDirection,
int);
319 {this->SetIntegrationDirection(FORWARD);};
321 {this->SetIntegrationDirection(BACKWARD);};
323 {this->SetIntegrationDirection(BOTH);};
333 vtkGetMacro(ComputeVorticity,
bool);
342 vtkGetMacro(RotationScale,
double);
372 { vtkErrorMacro( <<
"AddInput() must be called with a vtkDataSet not a vtkDataObject."); };
388 const char *vecFieldName,
391 double& integrationTime);
403 double StartPosition[3];
453 friend class PStreamTracerUtils;
static double ConvertToLength(double interval, int unit, double cellLength)
vtkCompositeDataSet * InputData
void SetIntegratorTypeToRungeKutta2()
void ConvertIntervals(double &step, double &minStep, double &maxStep, int direction, double cellLength)
bool HasMatchingPointAttributes
bool GenerateNormalsInIntegrate
void Integrate(vtkPointData *inputData, vtkPolyData *output, vtkDataArray *seedSource, vtkIdList *seedIds, vtkIntArray *integrationDirections, double lastPoint[3], vtkAbstractInterpolatedVelocityField *func, int maxCellSize, int vecType, const char *vecFieldName, double &propagation, vtkIdType &numSteps, double &integrationTime)
represent and manipulate point attribute data
void CalculateVorticity(vtkGenericCell *cell, double pcoords[3], vtkDoubleArray *cellVectors, double vorticity[3])
int GetIntegrationStepUnit()
void SetSourceData(vtkDataSet *source)
Specify the source object used to generate starting points (seeds).
void GenerateNormals(vtkPolyData *output, double *firstNormal, const char *vecName)
vtkInitialValueProblemSolver * Integrator
double MaximumPropagation
void SetIntegrationStepUnit(int unit)
Specify a uniform integration step unit for MinimumIntegrationStep, InitialIntegrationStep,...
void SetIntegrationDirectionToForward()
void InitializeSeeds(vtkDataArray *&seeds, vtkIdList *&seedIds, vtkIntArray *&integrationDirections, vtkDataSet *source)
abstract superclass for arrays of numeric data
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Specify the source object used to generate starting points (seeds).
abstract superclass for composite (multi-block or AMR) datasets
static double ConvertToLength(IntervalInformation &interval, double cellLength)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetInterpolatorTypeToCellLocator()
Set the velocity field interpolator type to the one involving a cell locator.
Superclass for all pipeline executives in VTK.
vtkIdType MaximumNumberOfSteps
void SetIntegrator(vtkInitialValueProblemSolver *)
Set/get the integrator type to be used for streamline generation.
void SetIntegrationDirectionToBoth()
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
double SimpleIntegrate(double seed[3], double lastPoint[3], double stepSize, vtkAbstractInterpolatedVelocityField *func)
void SetIntegratorTypeToRungeKutta45()
double MinimumIntegrationStep
static const double EPSILON
int SetupOutput(vtkInformation *inInfo, vtkInformation *outInfo)
a simple class to control print indentation
dynamic, self-adjusting array of int
list of point or cell ids
void AddInput(vtkDataObject *)
abstract class to specify dataset behavior
An abstract class for obtaining the interpolated velocity values at a point.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int CheckInputs(vtkAbstractInterpolatedVelocityField *&func, int *maxCellSize)
vtkAbstractInterpolatedVelocityField * InterpolatorPrototype
Proxy object to connect input/output ports.
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
double InitialIntegrationStep
void SetInterpolatorType(int interpType)
Set the type of the velocity field interpolator to determine whether vtkInterpolatedVelocityField (IN...
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
@ INTERPOLATOR_WITH_DATASET_POINT_LOCATOR
dynamic, self-adjusting array of double
void SetInterpolatorTypeToDataSetPointLocator()
Set the velocity field interpolator type to the one involving a dataset point locator.
void SetIntegrationDirectionToBackward()
double MaximumIntegrationStep
Integrate a set of ordinary differential equations (initial value problem) in time.
general representation of visualization data
static vtkStreamTracer * New()
Construct object to start from position (0,0,0), with forward integration, terminal speed 1....
void SetIntegratorTypeToRungeKutta4()
void SetInterpolatorPrototype(vtkAbstractInterpolatedVelocityField *ivf)
The object used to interpolate the velocity field during integration is of the same class as this pro...
virtual int FillInputPortInformation(int, vtkInformation *)
Fill the input port information objects for this algorithm.
Superclass for algorithms that produce only polydata as output.
void SetIntegratorType(int type)