52 #ifndef __vtkStreamer_h
53 #define __vtkStreamer_h
60 #define VTK_INTEGRATE_FORWARD 0
61 #define VTK_INTEGRATE_BACKWARD 1
62 #define VTK_INTEGRATE_BOTH_DIRECTIONS 2
73 void SetStartLocation(
vtkIdType cellId,
int subId,
double pcoords[3]);
79 void SetStartLocation(
vtkIdType cellId,
int subId,
double r,
double s,
85 vtkIdType GetStartLocation(
int& subId,
double pcoords[3]);
90 void SetStartPosition(
double x[3]);
95 void SetStartPosition(
double x,
double y,
double z);
98 double *GetStartPosition();
108 vtkSetClampMacro(MaximumPropagationTime,
double,0.0,
VTK_DOUBLE_MAX);
109 vtkGetMacro(MaximumPropagationTime,
double);
114 vtkSetClampMacro(IntegrationDirection,
int,
116 vtkGetMacro(IntegrationDirection,
int);
123 const char *GetIntegrationDirectionAsString();
129 vtkSetClampMacro(IntegrationStepLength,
double,0.0000001,
VTK_DOUBLE_MAX);
130 vtkGetMacro(IntegrationStepLength,
double);
136 vtkSetMacro(SpeedScalars,
int);
137 vtkGetMacro(SpeedScalars,
int);
138 vtkBooleanMacro(SpeedScalars,
int);
147 vtkSetMacro(OrientationScalars,
int);
148 vtkGetMacro(OrientationScalars,
int);
149 vtkBooleanMacro(OrientationScalars,
int);
156 vtkGetMacro(TerminalSpeed,
double);
165 vtkSetMacro(Vorticity,
int);
166 vtkGetMacro(Vorticity,
int);
167 vtkBooleanMacro(Vorticity,
int);
170 vtkSetMacro( NumberOfThreads,
int );
171 vtkGetMacro( NumberOfThreads,
int );
173 vtkSetMacro( SavePointInterval,
double );
174 vtkGetMacro( SavePointInterval,
double );
188 vtkSetMacro(Epsilon,
double);
189 vtkGetMacro(Epsilon,
double);
210 double StartPCoords[3];
213 double StartPosition[3];
244 delete [] this->Array;
251 if ( ++this->MaxId >= this->Size )
253 this->Resize(this->MaxId);
311 vtkGetMacro( NumberOfStreamers,
vtkIdType );
315 void InitializeThreadedIntegrate();
332 return "IntegrateForward";
336 return "IntegrateBackward";
340 return "IntegrateBothDirections";
vtkInitialValueProblemSolver * Integrator
vtkIdType GetNumberOfPoints()
virtual int FillInputPortInformation(int port, vtkInformation *info)
StreamPoint * GetStreamPoint(vtkIdType i)
vtkMultiThreader * Threader
abstract class to specify dataset behavior
void SetIntegrationDirectionToBackward()
#define VTK_INTEGRATE_BOTH_DIRECTIONS
A class for performing multithreaded execution.
vtkIdType NumberOfStreamers
#define VTK_INTEGRATE_FORWARD
void PrintSelf(ostream &os, vtkIndent indent)
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()
void SetIntegrationDirectionToForward()
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_THREAD_RETURN_TYPE
const char * GetIntegrationDirectionAsString()
vtkIdType InsertNextStreamPoint()
#define VTK_INTEGRATE_BACKWARD
void SetIntegrationDirectionToIntegrateBothDirections()
Integrate a set of ordinary differential equations (initial value problem) in time.