90 #ifndef vtkLagrangianParticleTracker_h
91 #define vtkLagrangianParticleTracker_h
93 #include "vtkFiltersFlowPathsModule.h"
122 STEP_LAST_CELL_LENGTH = 0,
123 STEP_CUR_CELL_LENGTH = 1,
124 STEP_LAST_CELL_VEL_DIR = 2,
125 STEP_CUR_CELL_VEL_DIR = 3,
126 STEP_LAST_CELL_DIV_THEO = 4,
127 STEP_CUR_CELL_DIV_THEO = 5
128 } CellLengthComputation;
154 vtkSetMacro(GeneratePolyVertexInteractionOutput,
bool);
155 vtkGetMacro(GeneratePolyVertexInteractionOutput,
bool);
184 vtkSetMacro(CellLengthComputationMode,
int);
185 vtkGetMacro(CellLengthComputationMode,
int);
192 vtkSetMacro(StepFactor,
double);
193 vtkGetMacro(StepFactor,
double);
200 vtkSetMacro(StepFactorMin,
double);
201 vtkGetMacro(StepFactorMin,
double);
208 vtkSetMacro(StepFactorMax,
double);
209 vtkGetMacro(StepFactorMax,
double);
216 vtkSetMacro(MaximumNumberOfSteps,
int);
217 vtkGetMacro(MaximumNumberOfSteps,
int);
225 vtkSetMacro(MaximumIntegrationTime,
double);
226 vtkGetMacro(MaximumIntegrationTime,
double);
236 vtkSetMacro(AdaptiveStepReintegration,
bool);
237 vtkGetMacro(AdaptiveStepReintegration,
bool);
238 vtkBooleanMacro(AdaptiveStepReintegration,
bool);
248 vtkSetMacro(UseParticlePathsRenderingThreshold,
bool);
249 vtkGetMacro(UseParticlePathsRenderingThreshold,
bool);
250 vtkBooleanMacro(UseParticlePathsRenderingThreshold,
bool);
260 vtkSetMacro(ParticlePathsRenderingPointsThreshold,
int);
261 vtkGetMacro(ParticlePathsRenderingPointsThreshold,
int);
337 std::queue<vtkLagrangianParticle*>& particleQueue,
vtkPointData* seedData);
340 std::queue<vtkLagrangianParticle*>& particles,
vtkPointData* seedData);
343 vtkPointData* seedData,
int nVar, std::queue<vtkLagrangianParticle*>& particles);
344 virtual bool UpdateSurfaceCacheIfNeeded(
vtkDataObject*& surfaces);
357 virtual void InitializeParticleData(
vtkFieldData* particleData,
int maxTuples = 0);
361 virtual bool FinalizeOutputs(
vtkPolyData* particlePathsOutput,
364 static void InsertPolyVertexCell(
vtkPolyData* polydata);
365 static void InsertVertexCells(
vtkPolyData* polydata);
367 virtual void GetParticleFeed(std::queue<vtkLagrangianParticle*>& particleQueue);
378 unsigned int interactedSurfaceFlatIndex,
vtkDataObject* interactionOutput);
387 bool ComputeNextStep(
388 double* xprev,
double* xnext,
389 double t,
double& delT,
double& delTActual,
390 double minStep,
double maxStep,
391 int& integrationRes);
393 virtual bool CheckParticlePathsRenderingThreshold(
vtkPolyData* particlePathsOutput);