68 #ifndef __vtkGenericStreamTracer_h
69 #define __vtkGenericStreamTracer_h
100 vtkSetVector3Macro(StartPosition,
double);
101 vtkGetVector3Macro(StartPosition,
double);
149 void SetIntegratorType(
int type);
150 int GetIntegratorType();
152 {this->SetIntegratorType(RUNGE_KUTTA2);};
154 {this->SetIntegratorType(RUNGE_KUTTA4);};
156 {this->SetIntegratorType(RUNGE_KUTTA45);};
162 void SetMaximumPropagation(
int unit,
double max);
163 void SetMaximumPropagation(
double max);
164 void SetMaximumPropagationUnit(
int unit);
165 int GetMaximumPropagationUnit();
166 double GetMaximumPropagation();
168 {this->SetMaximumPropagationUnit(TIME_UNIT);};
170 {this->SetMaximumPropagationUnit(LENGTH_UNIT);};
172 {this->SetMaximumPropagationUnit(CELL_LENGTH_UNIT);};
179 void SetMinimumIntegrationStep(
int unit,
double step);
180 void SetMinimumIntegrationStepUnit(
int unit);
181 void SetMinimumIntegrationStep(
double step);
182 int GetMinimumIntegrationStepUnit();
183 double GetMinimumIntegrationStep();
185 {this->SetMinimumIntegrationStepUnit(TIME_UNIT);};
187 {this->SetMinimumIntegrationStepUnit(LENGTH_UNIT);};
189 {this->SetMinimumIntegrationStepUnit(CELL_LENGTH_UNIT);};
196 void SetMaximumIntegrationStep(
int unit,
double step);
197 void SetMaximumIntegrationStepUnit(
int unit);
198 void SetMaximumIntegrationStep(
double step);
199 int GetMaximumIntegrationStepUnit();
200 double GetMaximumIntegrationStep();
202 {this->SetMaximumIntegrationStepUnit(TIME_UNIT);};
204 {this->SetMaximumIntegrationStepUnit(LENGTH_UNIT);};
206 {this->SetMaximumIntegrationStepUnit(CELL_LENGTH_UNIT);};
213 void SetInitialIntegrationStep(
int unit,
double step);
214 void SetInitialIntegrationStepUnit(
int unit);
215 void SetInitialIntegrationStep(
double step);
216 int GetInitialIntegrationStepUnit();
217 double GetInitialIntegrationStep();
219 {this->SetInitialIntegrationStepUnit(TIME_UNIT);};
221 {this->SetInitialIntegrationStepUnit(LENGTH_UNIT);};
223 {this->SetInitialIntegrationStepUnit(CELL_LENGTH_UNIT);};
230 vtkSetMacro(MaximumError,
double);
231 vtkGetMacro(MaximumError,
double);
236 vtkSetMacro(MaximumNumberOfSteps,
vtkIdType);
237 vtkGetMacro(MaximumNumberOfSteps,
vtkIdType);
243 vtkSetMacro(TerminalSpeed,
double);
244 vtkGetMacro(TerminalSpeed,
double);
259 vtkSetClampMacro(IntegrationDirection,
int, FORWARD, BOTH);
260 vtkGetMacro(IntegrationDirection,
int);
262 {this->SetIntegrationDirection(FORWARD);};
264 {this->SetIntegrationDirection(BACKWARD);};
266 {this->SetIntegrationDirection(BOTH);};
272 vtkSetMacro(ComputeVorticity,
int);
273 vtkGetMacro(ComputeVorticity,
int);
274 vtkBooleanMacro(ComputeVorticity,
int);
280 vtkSetMacro(RotationScale,
double);
281 vtkGetMacro(RotationScale,
double);
288 vtkGetStringMacro(InputVectorsSelection);
290 {this->SetInputVectorsSelection(fieldName);}
306 { vtkErrorMacro( <<
"AddInput() must be called with a vtkGenericDataSet not a vtkDataObject."); };
319 double vorticity[3]);
329 void SimpleIntegrate(
double seed[3],
335 void GenerateNormals(
vtkPolyData* output,
double* firstNormal);
339 vtkSetStringMacro(InputVectorsSelection);
344 double StartPosition[3];
363 void SetIntervalInformation(
int unit,
double interval,
367 double cellLength,
double speed);
369 double cellLength,
double speed);
371 double cellLength,
double speed);
373 double cellLength,
double speed);
374 void ConvertIntervals(
double& step,
double& minStep,
double& maxStep,
void SetMinimumIntegrationStepUnitToLengthUnit()
void SetMaximumPropagationUnitToTimeUnit()
virtual int FillInputPortInformation(int port, vtkInformation *info)
void SetIntegrationDirectionToBackward()
static const double EPSILON
void SelectInputVectors(const char *fieldName)
vtkGenericInterpolatedVelocityField * InterpolatorPrototype
abstract class to specify dataset behavior
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void SetInitialIntegrationStepUnitToTimeUnit()
void SetInitialIntegrationStepUnitToCellLengthUnit()
void SetMinimumIntegrationStepUnitToTimeUnit()
void SetIntegrationDirectionToBoth()
vtkInitialValueProblemSolver * Integrator
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract class defined API for attribute data
void AddInput(vtkDataObject *)
IntervalInformation MinimumIntegrationStep
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
dynamic, self-adjusting array of int
Superclass for algorithms that produce only polydata as output.
void SetInitialIntegrationStepUnitToLengthUnit()
a simple class to control print indentation
void AddInput(vtkDataObject *)
list of point or cell ids
IntervalInformation MaximumIntegrationStep
abstract superclass for arrays of numeric data
void SetMaximumIntegrationStepUnitToCellLengthUnit()
char * InputVectorsSelection
void SetIntegrationDirectionToForward()
void SetIntegratorTypeToRungeKutta2()
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetIntegratorTypeToRungeKutta4()
void SetMaximumPropagationUnitToLengthUnit()
IntervalInformation MaximumPropagation
void SetIntegratorTypeToRungeKutta45()
defines dataset interface
IntervalInformation InitialIntegrationStep
general representation of visualization data
void SetMaximumPropagationUnitToCellLengthUnit()
vtkIdType MaximumNumberOfSteps
void SetMaximumIntegrationStepUnitToLengthUnit()
Interface for obtaining interpolated velocity values.
void SetMaximumIntegrationStepUnitToTimeUnit()
void SetMinimumIntegrationStepUnitToCellLengthUnit()
Integrate a set of ordinary differential equations (initial value problem) in time.
int GenerateNormalsInIntegrate