85 #ifndef __vtkStreamTracer_h
86 #define __vtkStreamTracer_h
88 #include "vtkFiltersFlowPathsModule.h"
106 void PrintSelf(ostream& os, vtkIndent indent);
119 vtkSetVector3Macro(StartPosition,
double);
120 vtkGetVector3Macro(StartPosition,
double);
126 void SetSourceData(vtkDataSet *
source);
127 vtkDataSet *GetSource();
179 void SetIntegratorType(
int type);
180 int GetIntegratorType();
182 {this->SetIntegratorType(RUNGE_KUTTA2);};
184 {this->SetIntegratorType(RUNGE_KUTTA4);};
186 {this->SetIntegratorType(RUNGE_KUTTA45);};
191 void SetInterpolatorTypeToDataSetPointLocator();
195 void SetInterpolatorTypeToCellLocator();
199 vtkSetMacro(MaximumPropagation,
double);
200 vtkGetMacro(MaximumPropagation,
double);
208 void SetIntegrationStepUnit(
int unit );
217 vtkSetMacro(InitialIntegrationStep,
double);
218 vtkGetMacro(InitialIntegrationStep,
double);
225 vtkSetMacro(MinimumIntegrationStep,
double);
226 vtkGetMacro(MinimumIntegrationStep,
double);
233 vtkSetMacro(MaximumIntegrationStep,
double);
234 vtkGetMacro(MaximumIntegrationStep,
double);
240 vtkSetMacro(MaximumError,
double);
241 vtkGetMacro(MaximumError,
double);
246 vtkSetMacro(MaximumNumberOfSteps, vtkIdType);
247 vtkGetMacro(MaximumNumberOfSteps, vtkIdType);
253 vtkSetMacro(TerminalSpeed,
double);
254 vtkGetMacro(TerminalSpeed,
double);
268 INTERPOLATOR_WITH_CELL_LOCATOR
275 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
276 vtkGetMacro(IntegrationDirection,
int);
278 {this->SetIntegrationDirection(FORWARD);};
280 {this->SetIntegrationDirection(BACKWARD);};
282 {this->SetIntegrationDirection(BOTH);};
288 vtkSetMacro(ComputeVorticity,
bool);
289 vtkGetMacro(ComputeVorticity,
bool);
295 vtkSetMacro(RotationScale,
double);
296 vtkGetMacro(RotationScale,
double);
312 void SetInterpolatorType(
int interpType );
324 { vtkErrorMacro( <<
"AddInput() must be called with a vtkDataSet not a vtkDataObject."); };
326 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
330 vtkDoubleArray* cellVectors,
double vorticity[3] );
331 void Integrate(vtkPointData *inputData,
333 vtkDataArray* seedSource,
335 vtkIntArray* integrationDirections,
340 const char *vecFieldName,
342 vtkIdType& numSteps);
343 void SimpleIntegrate(
double seed[3],
349 void GenerateNormals(
vtkPolyData* output,
double* firstNormal,
const char *vecName);
354 double StartPosition[3];
373 void ConvertIntervals(
double& step,
double& minStep,
double& maxStep,
374 int direction,
double cellLength );
375 static double ConvertToLength(
double interval,
int unit,
double cellLength );
380 int SetupOutput(vtkInformation* inInfo,
381 vtkInformation* outInfo);
382 void InitializeSeeds(vtkDataArray*& seeds,
384 vtkIntArray*& integrationDirections,
404 friend class PStreamTracerUtils;
void SetIntegrationDirectionToBoth()
static const double EPSILON
virtual int FillInputPortInformation(int port, vtkInformation *info)
virtual vtkExecutive * CreateDefaultExecutive()
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
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.
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
void SetIntegrationDirectionToForward()
abstract superclass for composite (multi-block or AMR) datasets
Superclass for algorithms that produce only polydata as output.
int GetIntegrationStepUnit()
vtkInitialValueProblemSolver * Integrator
void SetIntegratorTypeToRungeKutta4()
double MaximumIntegrationStep
void SetIntegratorTypeToRungeKutta2()
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetIntegratorTypeToRungeKutta45()
double InitialIntegrationStep
vtkAbstractInterpolatedVelocityField * InterpolatorPrototype
void SetIntegrationDirectionToBackward()
double MaximumPropagation
bool HasMatchingPointAttributes
general representation of visualization data
Integrate a set of ordinary differential equations (initial value problem) in time.