VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
vtkStreamer Class Reference

abstract object implements integration of massless particle through vector field More...

#include <vtkStreamer.h>

Inheritance diagram for vtkStreamer:
[legend]
Collaboration diagram for vtkStreamer:
[legend]

Classes

class  StreamArray
 
class  StreamPoint
 

Public Types

typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkStreamerNewInstance () const
 
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 ()
 
void SetSourceConnection (vtkAlgorithmOutput *algOutput)
 
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 SetSourceData (vtkDataSet *source)
 
vtkDataSet * GetSource ()
 
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
vtkInitialValueProblemSolver * 
GetIntegrator ()
 
virtual void SetEpsilon (double)
 
virtual double GetEpsilon ()
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkStreamerSafeDownCast (vtkObjectBase *o)
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
void Integrate (vtkDataSet *input, vtkDataSet *source)
 
void InitializeThreadedIntegrate ()
 
virtual int FillInputPortInformation (int port, vtkInformation *info)
 
 vtkStreamer ()
 
 ~vtkStreamer ()
 
virtual vtkIdType GetNumberOfStreamers ()
 
StreamArrayGetStreamers ()
 

Static Protected Member Functions

static 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
 
vtkInitialValueProblemSolver * Integrator
 
double Epsilon
 
double SavePointInterval
 
vtkMultiThreader * Threader
 
int NumberOfThreads
 

Friends

class StreamArray
 

Detailed Description

abstract object implements integration of massless particle through vector field

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

Note that vtkStreamer 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.

vtkStreamer 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.

vtkStreamer implements the integration process in the Integrate() method. Because vtkStreamer 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

Definition at line 65 of file vtkStreamer.h.

Member Typedef Documentation

typedef vtkPolyDataAlgorithm vtkStreamer::Superclass

Definition at line 68 of file vtkStreamer.h.

Constructor & Destructor Documentation

vtkStreamer::vtkStreamer ( )
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.

vtkStreamer::~vtkStreamer ( )
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

static int vtkStreamer::IsTypeOf ( const char *  type)
static
virtual int vtkStreamer::IsA ( const char *  type)
virtual
static vtkStreamer* vtkStreamer::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkStreamer::NewInstanceInternal ( ) const
protectedvirtual
vtkStreamer* vtkStreamer::NewInstance ( ) const
void vtkStreamer::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
void vtkStreamer::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 vtkStreamer::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 vtkStreamer::GetStartLocation ( int &  subId,
double  pcoords[3] 
)

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

void vtkStreamer::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 vtkStreamer::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* vtkStreamer::GetStartPosition ( )

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

void vtkStreamer::SetSourceData ( vtkDataSet *  source)

Specify the source object used to generate starting points.

vtkDataSet* vtkStreamer::GetSource ( )

Specify the source object used to generate starting points.

void vtkStreamer::SetSourceConnection ( vtkAlgorithmOutput *  algOutput)

Specify the source object used to generate starting points by making a pipeline connection

virtual void vtkStreamer::SetMaximumPropagationTime ( double  )
virtual

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

virtual double vtkStreamer::GetMaximumPropagationTime ( )
virtual

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

virtual void vtkStreamer::SetIntegrationDirection ( int  )
virtual

Specify the direction in which to integrate the Streamer.

virtual int vtkStreamer::GetIntegrationDirection ( )
virtual

Specify the direction in which to integrate the Streamer.

void vtkStreamer::SetIntegrationDirectionToForward ( )
inline

Specify the direction in which to integrate the Streamer.

Definition at line 122 of file vtkStreamer.h.

void vtkStreamer::SetIntegrationDirectionToBackward ( )
inline

Specify the direction in which to integrate the Streamer.

Definition at line 124 of file vtkStreamer.h.

void vtkStreamer::SetIntegrationDirectionToIntegrateBothDirections ( )
inline

Specify the direction in which to integrate the Streamer.

Definition at line 126 of file vtkStreamer.h.

const char * vtkStreamer::GetIntegrationDirectionAsString ( )
inline

Return the integration direction as a character string.

Definition at line 333 of file vtkStreamer.h.

virtual void vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::GetTerminalSpeed ( )
virtual

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

virtual void vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::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 vtkStreamer::SetNumberOfThreads ( int  )
virtual
virtual int vtkStreamer::GetNumberOfThreads ( )
virtual
virtual void vtkStreamer::SetSavePointInterval ( double  )
virtual
virtual double vtkStreamer::GetSavePointInterval ( )
virtual
void vtkStreamer::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* vtkStreamer::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.

virtual void vtkStreamer::SetEpsilon ( double  )
virtual

A positive value, as small as possible for numerical comparison. The initial value is 1E-12.

virtual double vtkStreamer::GetEpsilon ( )
virtual

A positive value, as small as possible for numerical comparison. The initial value is 1E-12.

void vtkStreamer::Integrate ( vtkDataSet *  input,
vtkDataSet *  source 
)
protected
static VTK_THREAD_RETURN_TYPE vtkStreamer::ThreadedIntegrate ( void *  arg)
staticprotected
virtual vtkIdType vtkStreamer::GetNumberOfStreamers ( )
protectedvirtual

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

StreamArray* vtkStreamer::GetStreamers ( )
inlineprotected

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

Definition at line 317 of file vtkStreamer.h.

void vtkStreamer::InitializeThreadedIntegrate ( )
protected
virtual int vtkStreamer::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual

Friends And Related Function Documentation

friend class StreamArray
friend

Definition at line 240 of file vtkStreamer.h.

Member Data Documentation

int vtkStreamer::StartFrom
protected

Definition at line 210 of file vtkStreamer.h.

vtkIdType vtkStreamer::StartCell
protected

Definition at line 213 of file vtkStreamer.h.

int vtkStreamer::StartSubId
protected

Definition at line 214 of file vtkStreamer.h.

double vtkStreamer::StartPCoords[3]
protected

Definition at line 215 of file vtkStreamer.h.

double vtkStreamer::StartPosition[3]
protected

Definition at line 218 of file vtkStreamer.h.

StreamArray* vtkStreamer::Streamers
protected

Definition at line 275 of file vtkStreamer.h.

vtkIdType vtkStreamer::NumberOfStreamers
protected

Definition at line 276 of file vtkStreamer.h.

double vtkStreamer::MaximumPropagationTime
protected

Definition at line 279 of file vtkStreamer.h.

int vtkStreamer::IntegrationDirection
protected

Definition at line 282 of file vtkStreamer.h.

double vtkStreamer::IntegrationStepLength
protected

Definition at line 285 of file vtkStreamer.h.

int vtkStreamer::Vorticity
protected

Definition at line 288 of file vtkStreamer.h.

double vtkStreamer::TerminalSpeed
protected

Definition at line 291 of file vtkStreamer.h.

int vtkStreamer::SpeedScalars
protected

Definition at line 294 of file vtkStreamer.h.

int vtkStreamer::OrientationScalars
protected

Definition at line 297 of file vtkStreamer.h.

vtkInitialValueProblemSolver* vtkStreamer::Integrator
protected

Definition at line 300 of file vtkStreamer.h.

double vtkStreamer::Epsilon
protected

Definition at line 304 of file vtkStreamer.h.

double vtkStreamer::SavePointInterval
protected

Definition at line 309 of file vtkStreamer.h.

vtkMultiThreader* vtkStreamer::Threader
protected

Definition at line 321 of file vtkStreamer.h.

int vtkStreamer::NumberOfThreads
protected

Definition at line 322 of file vtkStreamer.h.


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