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;
An abstract class for obtaining the interpolated velocity values at a point.
Proxy object to connect input/output ports.
abstract superclass for composite (multi-block or AMR) datasets
abstract superclass for arrays of numeric data
general representation of visualization data
abstract class to specify dataset behavior
dynamic, self-adjusting array of double
Superclass for all pipeline executives in VTK.
provides thread-safe access to cells
list of point or cell ids
a simple class to control print indentation
Integrate a set of ordinary differential equations (initial value problem) in time.
dynamic, self-adjusting array of int
represent and manipulate point attribute data
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
void SetIntegratorTypeToRungeKutta45()
int SetupOutput(vtkInformation *inInfo, vtkInformation *outInfo)
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)
void SetSourceData(vtkDataSet *source)
Specify the source object used to generate starting points (seeds).
double InitialIntegrationStep
vtkAbstractInterpolatedVelocityField * InterpolatorPrototype
double MaximumPropagation
void SetInterpolatorTypeToCellLocator()
Set the velocity field interpolator type to the one involving a cell locator.
void CalculateVorticity(vtkGenericCell *cell, double pcoords[3], vtkDoubleArray *cellVectors, double vorticity[3])
double MinimumIntegrationStep
void SetIntegratorTypeToRungeKutta4()
static double ConvertToLength(double interval, int unit, double cellLength)
void SetIntegrator(vtkInitialValueProblemSolver *)
Set/get the integrator type to be used for streamline generation.
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Specify the source object used to generate starting points (seeds).
static double ConvertToLength(IntervalInformation &interval, double cellLength)
int CheckInputs(vtkAbstractInterpolatedVelocityField *&func, int *maxCellSize)
void ConvertIntervals(double &step, double &minStep, double &maxStep, int direction, double cellLength)
void GenerateNormals(vtkPolyData *output, double *firstNormal, const char *vecName)
static const double EPSILON
@ INTERPOLATOR_WITH_DATASET_POINT_LOCATOR
vtkIdType MaximumNumberOfSteps
void SetIntegrationDirectionToForward()
bool HasMatchingPointAttributes
vtkCompositeDataSet * InputData
virtual int FillInputPortInformation(int, vtkInformation *)
Fill the input port information objects for this algorithm.
void SetInterpolatorType(int interpType)
Set the type of the velocity field interpolator to determine whether vtkInterpolatedVelocityField (IN...
double MaximumIntegrationStep
bool GenerateNormalsInIntegrate
void SetIntegrationDirectionToBackward()
void SetInterpolatorTypeToDataSetPointLocator()
Set the velocity field interpolator type to the one involving a dataset point locator.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
void InitializeSeeds(vtkDataArray *&seeds, vtkIdList *&seedIds, vtkIntArray *&integrationDirections, vtkDataSet *source)
void SetIntegratorTypeToRungeKutta2()
static vtkStreamTracer * New()
Construct object to start from position (0,0,0), with forward integration, terminal speed 1....
void SetIntegrationDirectionToBoth()
double SimpleIntegrate(double seed[3], double lastPoint[3], double stepSize, vtkAbstractInterpolatedVelocityField *func)
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
void AddInput(vtkDataObject *)
vtkInitialValueProblemSolver * Integrator
void SetInterpolatorPrototype(vtkAbstractInterpolatedVelocityField *ivf)
The object used to interpolate the velocity field during integration is of the same class as this pro...
void SetIntegrationStepUnit(int unit)
Specify a uniform integration step unit for MinimumIntegrationStep, InitialIntegrationStep,...
void SetIntegratorType(int type)
int GetIntegrationStepUnit()
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.