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;