Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkGenericStreamer Class Reference

#include <vtkGenericStreamer.h>

Inheritance diagram for vtkGenericStreamer:

Inheritance graph
[legend]
Collaboration diagram for vtkGenericStreamer:

Collaboration graph
[legend]
List of all members.

Detailed Description

abstract object implements integration of massless particle through vector field

vtkGenericStreamer is a filter that integrates a massless particle through a vector field. The integration is performed using second order Runge-Kutta method. vtkGenericStreamer often serves as a base class for other classes that perform numerical integration through a vector field (e.g., vtkStreamLine).

Note that vtkGenericStreamer can integrate both forward and backward in time, or in both directions. The length of the streamer is controlled by specifying an elapsed time. (The elapsed time is the time each particle travels.) Otherwise, the integration terminates after exiting the dataset or if the particle speed is reduced to a value less than the terminal speed.

vtkGenericStreamer integrates through any type of dataset. As a result, if the dataset contains 2D cells such as polygons or triangles, the integration is constrained to lie on the surface defined by the 2D cells.

The starting point of streamers may be defined in three different ways. Starting from global x-y-z "position" allows you to start a single streamer at a specified x-y-z coordinate. Starting from "location" allows you to start at a specified cell, subId, and parametric coordinate. Finally, you may specify a source object to start multiple streamers. If you start streamers using a source object, for each point in the source that is inside the dataset a streamer is created.

vtkGenericStreamer implements the integration process in the Integrate() method. Because vtkGenericStreamer does not implement the Execute() method that its superclass (i.e., Filter) requires, it is an abstract class. Its subclasses implement the execute method and use the Integrate() method, and then build their own representation of the integration path (i.e., lines, dashed lines, points, etc.).

See also:
vtkStreamLine vtkDashedStreamLine vtkStreamPoints
Created by:
  • Bertel, Francois
CVS contributions (if > 5%):
  • Bertel, Francois (99%)
CVS logs (CVSweb):
  • .cxx (/GenericFiltering/vtkGenericStreamer.cxx)
  • .h (/GenericFiltering/vtkGenericStreamer.h)

Definition at line 75 of file vtkGenericStreamer.h.

Public Types

typedef vtkGenericDataSetToPolyDataFilter Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void SetStartLocation (vtkIdType cellId, int subId, double pcoords[3])
vtkIdType GetStartLocation (int &subId, double pcoords[3])
void SetStartPosition (double x[3])
void SetStartPosition (double x, double y, double z)
double * GetStartPosition ()
virtual void SetNumberOfThreads (int)
virtual int GetNumberOfThreads ()
virtual void SetSavePointInterval (double)
virtual double GetSavePointInterval ()
void SetStartLocation (vtkIdType cellId, int subId, double r, double s, double t)
void SetSource (vtkDataSet *source)
vtkDataSetGetSource ()
virtual void SetMaximumPropagationTime (double)
virtual double GetMaximumPropagationTime ()
virtual void SetIntegrationDirection (int)
virtual int GetIntegrationDirection ()
void SetIntegrationDirectionToForward ()
void SetIntegrationDirectionToBackward ()
void SetIntegrationDirectionToIntegrateBothDirections ()
const char * GetIntegrationDirectionAsString ()
virtual void SetIntegrationStepLength (double)
virtual double GetIntegrationStepLength ()
virtual void SetSpeedScalars (int)
virtual int GetSpeedScalars ()
virtual void SpeedScalarsOn ()
virtual void SpeedScalarsOff ()
virtual void SetOrientationScalars (int)
virtual int GetOrientationScalars ()
virtual void OrientationScalarsOn ()
virtual void OrientationScalarsOff ()
virtual void SetTerminalSpeed (double)
virtual double GetTerminalSpeed ()
virtual void SetVorticity (int)
virtual int GetVorticity ()
virtual void VorticityOn ()
virtual void VorticityOff ()
void SetIntegrator (vtkInitialValueProblemSolver *)
virtual vtkInitialValueProblemSolverGetIntegrator ()

Static Public Member Functions

int IsTypeOf (const char *type)
vtkGenericStreamerSafeDownCast (vtkObject *o)

Protected Member Functions

void Integrate ()
void InitializeThreadedIntegrate ()
 vtkGenericStreamer ()
 ~vtkGenericStreamer ()
virtual int GetNumberOfStreamers ()
StreamArrayGetStreamers ()

Static Protected Member Functions

VTK_THREAD_RETURN_TYPE ThreadedIntegrate (void *arg)

Protected Attributes

int StartFrom
vtkIdType StartCell
int StartSubId
double StartPCoords [3]
double StartPosition [3]
StreamArrayStreamers
vtkIdType NumberOfStreamers
double MaximumPropagationTime
int IntegrationDirection
double IntegrationStepLength
int Vorticity
double TerminalSpeed
int SpeedScalars
int OrientationScalars
vtkInitialValueProblemSolverIntegrator
double SavePointInterval
vtkMultiThreaderThreader
int NumberOfThreads


Member Typedef Documentation

typedef vtkGenericDataSetToPolyDataFilter vtkGenericStreamer::Superclass
 

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

Definition at line 78 of file vtkGenericStreamer.h.


Constructor & Destructor Documentation

vtkGenericStreamer::vtkGenericStreamer  )  [protected]
 

Construct object to start from position (0,0,0); integrate forward; terminal speed 0.0; vorticity computation off; integrations step length 0.2; and maximum propagation time 100.0.

vtkGenericStreamer::~vtkGenericStreamer  )  [protected]
 

Construct object to start from position (0,0,0); integrate forward; terminal speed 0.0; vorticity computation off; integrations step length 0.2; and maximum propagation time 100.0.


Member Function Documentation

virtual const char* vtkGenericStreamer::GetClassName  )  [virtual]
 

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

int vtkGenericStreamer::IsTypeOf const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

virtual int vtkGenericStreamer::IsA const char *  type  )  [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

vtkGenericStreamer* vtkGenericStreamer::SafeDownCast vtkObject o  )  [static]
 

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

void vtkGenericStreamer::PrintSelf ostream &  os,
vtkIndent  indent
[virtual]
 

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkGenericDataSetToPolyDataFilter.

Reimplemented in vtkGenericStreamLine.

void vtkGenericStreamer::SetStartLocation vtkIdType  cellId,
int  subId,
double  pcoords[3]
 

Specify the start of the streamline in the cell coordinate system. That is, cellId and subId (if composite cell), and parametric coordinates.

void vtkGenericStreamer::SetStartLocation vtkIdType  cellId,
int  subId,
double  r,
double  s,
double  t
 

Specify the start of the streamline in the cell coordinate system. That is, cellId and subId (if composite cell), and parametric coordinates.

vtkIdType vtkGenericStreamer::GetStartLocation int &  subId,
double  pcoords[3]
 

Get the starting location of the streamline in the cell coordinate system.

void vtkGenericStreamer::SetStartPosition double  x[3]  ) 
 

Specify the start of the streamline in the global coordinate system. Search must be performed to find initial cell to start integration from.

void vtkGenericStreamer::SetStartPosition double  x,
double  y,
double  z
 

Specify the start of the streamline in the global coordinate system. Search must be performed to find initial cell to start integration from.

double* vtkGenericStreamer::GetStartPosition  ) 
 

Get the start position in global x-y-z coordinates.

void vtkGenericStreamer::SetSource vtkDataSet source  ) 
 

Specify the source object used to generate starting points.

vtkDataSet* vtkGenericStreamer::GetSource  ) 
 

Specify the source object used to generate starting points.

virtual void vtkGenericStreamer::SetMaximumPropagationTime double   )  [virtual]
 

Specify the maximum length of the Streamer expressed in elapsed time.

virtual double vtkGenericStreamer::GetMaximumPropagationTime  )  [virtual]
 

Specify the maximum length of the Streamer expressed in elapsed time.

virtual void vtkGenericStreamer::SetIntegrationDirection int   )  [virtual]
 

Specify the direction in which to integrate the Streamer.

virtual int vtkGenericStreamer::GetIntegrationDirection  )  [virtual]
 

Specify the direction in which to integrate the Streamer.

void vtkGenericStreamer::SetIntegrationDirectionToForward  )  [inline]
 

Specify the direction in which to integrate the Streamer.

Definition at line 128 of file vtkGenericStreamer.h.

References VTK_INTEGRATE_FORWARD.

void vtkGenericStreamer::SetIntegrationDirectionToBackward  )  [inline]
 

Specify the direction in which to integrate the Streamer.

Definition at line 130 of file vtkGenericStreamer.h.

References VTK_INTEGRATE_BACKWARD.

void vtkGenericStreamer::SetIntegrationDirectionToIntegrateBothDirections  )  [inline]
 

Specify the direction in which to integrate the Streamer.

Definition at line 132 of file vtkGenericStreamer.h.

References VTK_INTEGRATE_BOTH_DIRECTIONS.

const char * vtkGenericStreamer::GetIntegrationDirectionAsString  )  [inline]
 

Return the integration direction as a character string.

Definition at line 325 of file vtkGenericStreamer.h.

References IntegrationDirection.

virtual void vtkGenericStreamer::SetIntegrationStepLength double   )  [virtual]
 

Specify a nominal integration step size (expressed as a fraction of the size of each cell). This value can be larger than 1.

virtual double vtkGenericStreamer::GetIntegrationStepLength  )  [virtual]
 

Specify a nominal integration step size (expressed as a fraction of the size of each cell). This value can be larger than 1.

virtual void vtkGenericStreamer::SetSpeedScalars int   )  [virtual]
 

Turn on/off the creation of scalar data from velocity magnitude. If off, and input dataset has scalars, input dataset scalars are used.

virtual int vtkGenericStreamer::GetSpeedScalars  )  [virtual]
 

Turn on/off the creation of scalar data from velocity magnitude. If off, and input dataset has scalars, input dataset scalars are used.

virtual void vtkGenericStreamer::SpeedScalarsOn  )  [virtual]
 

Turn on/off the creation of scalar data from velocity magnitude. If off, and input dataset has scalars, input dataset scalars are used.

virtual void vtkGenericStreamer::SpeedScalarsOff  )  [virtual]
 

Turn on/off the creation of scalar data from velocity magnitude. If off, and input dataset has scalars, input dataset scalars are used.

virtual void vtkGenericStreamer::SetOrientationScalars int   )  [virtual]
 

Turn on/off the creation of scalar data from vorticity information. The scalar information is currently the orientation value "theta" used in rotating stream tubes. If off, and input dataset has scalars, then input dataset scalars are used, unless SpeedScalars is also on. SpeedScalars takes precedence over OrientationScalars.

virtual int vtkGenericStreamer::GetOrientationScalars  )  [virtual]
 

Turn on/off the creation of scalar data from vorticity information. The scalar information is currently the orientation value "theta" used in rotating stream tubes. If off, and input dataset has scalars, then input dataset scalars are used, unless SpeedScalars is also on. SpeedScalars takes precedence over OrientationScalars.

virtual void vtkGenericStreamer::OrientationScalarsOn  )  [virtual]
 

Turn on/off the creation of scalar data from vorticity information. The scalar information is currently the orientation value "theta" used in rotating stream tubes. If off, and input dataset has scalars, then input dataset scalars are used, unless SpeedScalars is also on. SpeedScalars takes precedence over OrientationScalars.

virtual void vtkGenericStreamer::OrientationScalarsOff  )  [virtual]
 

Turn on/off the creation of scalar data from vorticity information. The scalar information is currently the orientation value "theta" used in rotating stream tubes. If off, and input dataset has scalars, then input dataset scalars are used, unless SpeedScalars is also on. SpeedScalars takes precedence over OrientationScalars.

virtual void vtkGenericStreamer::SetTerminalSpeed double   )  [virtual]
 

Set/get terminal speed (i.e., speed is velocity magnitude). Terminal speed is speed at which streamer will terminate propagation.

virtual double vtkGenericStreamer::GetTerminalSpeed  )  [virtual]
 

Set/get terminal speed (i.e., speed is velocity magnitude). Terminal speed is speed at which streamer will terminate propagation.

virtual void vtkGenericStreamer::SetVorticity int   )  [virtual]
 

Turn on/off the computation of vorticity. Vorticity is an indication of the rotation of the flow. In combination with vtkStreamLine and vtkTubeFilter can be used to create rotated tubes. If vorticity is turned on, in the output, the velocity vectors are replaced by vorticity vectors.

virtual int vtkGenericStreamer::GetVorticity  )  [virtual]
 

Turn on/off the computation of vorticity. Vorticity is an indication of the rotation of the flow. In combination with vtkStreamLine and vtkTubeFilter can be used to create rotated tubes. If vorticity is turned on, in the output, the velocity vectors are replaced by vorticity vectors.

virtual void vtkGenericStreamer::VorticityOn  )  [virtual]
 

Turn on/off the computation of vorticity. Vorticity is an indication of the rotation of the flow. In combination with vtkStreamLine and vtkTubeFilter can be used to create rotated tubes. If vorticity is turned on, in the output, the velocity vectors are replaced by vorticity vectors.

virtual void vtkGenericStreamer::VorticityOff  )  [virtual]
 

Turn on/off the computation of vorticity. Vorticity is an indication of the rotation of the flow. In combination with vtkStreamLine and vtkTubeFilter can be used to create rotated tubes. If vorticity is turned on, in the output, the velocity vectors are replaced by vorticity vectors.

virtual void vtkGenericStreamer::SetNumberOfThreads int   )  [virtual]
 

virtual int vtkGenericStreamer::GetNumberOfThreads  )  [virtual]
 

virtual void vtkGenericStreamer::SetSavePointInterval double   )  [virtual]
 

virtual double vtkGenericStreamer::GetSavePointInterval  )  [virtual]
 

void vtkGenericStreamer::SetIntegrator vtkInitialValueProblemSolver  ) 
 

Set/get the integrator type to be used in the stream line calculation. The object passed is not actually used but is cloned with NewInstance by each thread/process in the process of integration (prototype pattern). The default is 2nd order Runge Kutta.

virtual vtkInitialValueProblemSolver* vtkGenericStreamer::GetIntegrator  )  [virtual]
 

Set/get the integrator type to be used in the stream line calculation. The object passed is not actually used but is cloned with NewInstance by each thread/process in the process of integration (prototype pattern). The default is 2nd order Runge Kutta.

void vtkGenericStreamer::Integrate  )  [protected]
 

VTK_THREAD_RETURN_TYPE vtkGenericStreamer::ThreadedIntegrate void *  arg  )  [static, protected]
 

virtual int vtkGenericStreamer::GetNumberOfStreamers  )  [protected, virtual]
 

These methods were added to allow access to these variables from the threads.

StreamArray* vtkGenericStreamer::GetStreamers  )  [inline, protected]
 

These methods were added to allow access to these variables from the threads.

Definition at line 312 of file vtkGenericStreamer.h.

void vtkGenericStreamer::InitializeThreadedIntegrate  )  [protected]
 


Member Data Documentation

int vtkGenericStreamer::StartFrom [protected]
 

Definition at line 209 of file vtkGenericStreamer.h.

vtkIdType vtkGenericStreamer::StartCell [protected]
 

Definition at line 212 of file vtkGenericStreamer.h.

int vtkGenericStreamer::StartSubId [protected]
 

Definition at line 213 of file vtkGenericStreamer.h.

double vtkGenericStreamer::StartPCoords[3] [protected]
 

Definition at line 214 of file vtkGenericStreamer.h.

double vtkGenericStreamer::StartPosition[3] [protected]
 

Definition at line 217 of file vtkGenericStreamer.h.

StreamArray* vtkGenericStreamer::Streamers [protected]
 

Definition at line 274 of file vtkGenericStreamer.h.

vtkIdType vtkGenericStreamer::NumberOfStreamers [protected]
 

Definition at line 275 of file vtkGenericStreamer.h.

double vtkGenericStreamer::MaximumPropagationTime [protected]
 

Definition at line 278 of file vtkGenericStreamer.h.

int vtkGenericStreamer::IntegrationDirection [protected]
 

Definition at line 281 of file vtkGenericStreamer.h.

Referenced by GetIntegrationDirectionAsString().

double vtkGenericStreamer::IntegrationStepLength [protected]
 

Definition at line 284 of file vtkGenericStreamer.h.

int vtkGenericStreamer::Vorticity [protected]
 

Definition at line 287 of file vtkGenericStreamer.h.

double vtkGenericStreamer::TerminalSpeed [protected]
 

Definition at line 290 of file vtkGenericStreamer.h.

int vtkGenericStreamer::SpeedScalars [protected]
 

Definition at line 293 of file vtkGenericStreamer.h.

int vtkGenericStreamer::OrientationScalars [protected]
 

Definition at line 296 of file vtkGenericStreamer.h.

vtkInitialValueProblemSolver* vtkGenericStreamer::Integrator [protected]
 

Definition at line 299 of file vtkGenericStreamer.h.

double vtkGenericStreamer::SavePointInterval [protected]
 

Definition at line 304 of file vtkGenericStreamer.h.

vtkMultiThreader* vtkGenericStreamer::Threader [protected]
 

Definition at line 316 of file vtkGenericStreamer.h.

int vtkGenericStreamer::NumberOfThreads [protected]
 

Definition at line 317 of file vtkGenericStreamer.h.


The documentation for this class was generated from the following file: