56 #include "vtkFiltersFlowPathsModule.h"
62 #ifndef VTK_LEGACY_REMOVE
64 #define VTK_INTEGRATE_FORWARD 0
65 #define VTK_INTEGRATE_BACKWARD 1
66 #define VTK_INTEGRATE_BOTH_DIRECTIONS 2
78 void SetStartLocation(
vtkIdType cellId,
int subId,
double pcoords[3]);
84 void SetStartLocation(
vtkIdType cellId,
int subId,
double r,
double s,
90 vtkIdType GetStartLocation(
int& subId,
double pcoords[3]);
97 void SetStartPosition(
double x[3]);
104 void SetStartPosition(
double x,
double y,
double z);
109 double *GetStartPosition();
129 vtkSetClampMacro(MaximumPropagationTime,
double,0.0,
VTK_DOUBLE_MAX);
130 vtkGetMacro(MaximumPropagationTime,
double);
137 vtkSetClampMacro(IntegrationDirection,
int,
139 vtkGetMacro(IntegrationDirection,
int);
146 const char *GetIntegrationDirectionAsString();
154 vtkSetClampMacro(IntegrationStepLength,
double,0.0000001,
VTK_DOUBLE_MAX);
155 vtkGetMacro(IntegrationStepLength,
double);
164 vtkGetMacro(SpeedScalars,
int);
177 vtkGetMacro(OrientationScalars,
int);
187 vtkGetMacro(TerminalSpeed,
double);
199 vtkGetMacro(Vorticity,
int);
204 vtkGetMacro( NumberOfThreads,
int );
207 vtkGetMacro( SavePointInterval,
double );
227 vtkGetMacro(Epsilon,
double);
250 double StartPCoords[3];
253 double StartPosition[3];
280 delete [] this->Array;
286 if ( ++this->MaxId >= this->Size )
288 this->Resize(this->MaxId);
348 vtkGetMacro( NumberOfStreamers,
vtkIdType );
352 void InitializeThreadedIntegrate();
360 void operator=(const
vtkStreamer&) VTK_DELETE_FUNCTION;
371 return "IntegrateForward";
375 return "IntegrateBackward";
379 return "IntegrateBothDirections";
384 #endif // VTK_LEGACY_REMOVE
vtkInitialValueProblemSolver * Integrator
vtkIdType GetNumberOfPoints()
StreamPoint * GetStreamPoint(vtkIdType i)
vtkMultiThreader * Threader
abstract class to specify dataset behavior
void SetIntegrationDirectionToBackward()
Specify the direction in which to integrate the Streamer.
#define VTK_INTEGRATE_BOTH_DIRECTIONS
A class for performing multithreaded execution.
vtkIdType NumberOfStreamers
#define VTK_INTEGRATE_FORWARD
Proxy object to connect input/output ports.
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
abstract object implements integration of massless particle through vector field
double MaximumPropagationTime
double IntegrationStepLength
StreamArray * GetStreamers()
These methods were added to allow access to these variables from the threads.
void SetIntegrationDirectionToForward()
Specify the direction in which to integrate the Streamer.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_THREAD_RETURN_TYPE
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkIdType InsertNextStreamPoint()
#define VTK_INTEGRATE_BACKWARD
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetIntegrationDirectionToIntegrateBothDirections()
Specify the direction in which to integrate the Streamer.
Integrate a set of ordinary differential equations (initial value problem) in time.