1 /*=========================================================================
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkStreamLine.h,v $
6 Date: $Date: 2002/01/22 15:29:47 $
7 Version: $Revision: 1.38 $
9 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
11 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notice for more information.
17 =========================================================================*/
18 // .NAME vtkStreamLine - generate streamline in arbitrary dataset
19 // .SECTION Description
20 // vtkStreamLine is a filter that generates a streamline for an arbitrary
21 // dataset. A streamline is a line that is everywhere tangent to the vector
22 // field. Scalar values also are calculated along the streamline and can be
23 // used to color the line. Streamlines are calculated by integrating from
24 // a starting point through the vector field. Integration can be performed
25 // forward in time (see where the line goes), backward in time (see where the
26 // line came from), or in both directions. It also is possible to compute
27 // vorticity along the streamline. Vorticity is the projection (i.e., dot
28 // product) of the flow rotation on the velocity vector, i.e., the rotation
29 // of flow around the streamline.
31 // vtkStreamLine defines the instance variable StepLength. This parameter
32 // controls the time increment used to generate individual points along
33 // the streamline(s). Smaller values result in more line
34 // primitives but smoother streamlines. The StepLength instance variable is
35 // defined in terms of time (i.e., the distance that the particle travels in
36 // the specified time period). Thus, the line segments will be smaller in areas
37 // of low velocity and larger in regions of high velocity. (NOTE: This is
38 // different than the IntegrationStepLength defined by the superclass
39 // vtkStreamer. IntegrationStepLength is used to control integration step
40 // size and is expressed as a fraction of the cell length.) The StepLength
41 // instance variable is important because subclasses of vtkStreamLine (e.g.,
42 // vtkDashedStreamLine) depend on this value to build their representation.
45 // vtkStreamer vtkDashedStreamLine vtkStreamPoints
47 #ifndef __vtkStreamLine_h
48 #define __vtkStreamLine_h
50 #include "vtkStreamer.h"
52 class VTK_GRAPHICS_EXPORT vtkStreamLine : public vtkStreamer
55 vtkTypeRevisionMacro(vtkStreamLine,vtkStreamer);
56 void PrintSelf(ostream& os, vtkIndent indent);
59 // Construct object with step size set to 1.0.
60 static vtkStreamLine *New();
63 // Specify the length of a line segment. The length is expressed in terms of
64 // elapsed time. Smaller values result in smoother appearing streamlines, but
65 // greater numbers of line primitives.
66 vtkSetClampMacro(StepLength,float,0.000001,VTK_LARGE_FLOAT);
67 vtkGetMacro(StepLength,float);
73 // Convert streamer array into vtkPolyData
76 // the length of line primitives
80 vtkStreamLine(const vtkStreamLine&); // Not implemented.
81 void operator=(const vtkStreamLine&); // Not implemented.