OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I386LINUX / util / I386LINUX / include / vtk / vtkStreamLine.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    $RCSfile: vtkStreamLine.h,v $
5   Language:  C++
6   Date:      $Date: 2002/01/22 15:29:47 $
7   Version:   $Revision: 1.38 $
8
9   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
10   All rights reserved.
11   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
12
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.
16
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.
30 //
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.
43
44 // .SECTION See Also
45 // vtkStreamer vtkDashedStreamLine vtkStreamPoints
46
47 #ifndef __vtkStreamLine_h
48 #define __vtkStreamLine_h
49
50 #include "vtkStreamer.h"
51
52 class VTK_GRAPHICS_EXPORT vtkStreamLine : public vtkStreamer
53 {
54 public:
55   vtkTypeRevisionMacro(vtkStreamLine,vtkStreamer);
56   void PrintSelf(ostream& os, vtkIndent indent);
57
58   // Description:
59   // Construct object with step size set to 1.0.
60   static vtkStreamLine *New();
61
62   // Description:
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);
68
69 protected:
70   vtkStreamLine();
71   ~vtkStreamLine() {};
72
73   // Convert streamer array into vtkPolyData
74   void Execute();
75
76   // the length of line primitives
77   float StepLength;
78
79 private:
80   vtkStreamLine(const vtkStreamLine&);  // Not implemented.
81   void operator=(const vtkStreamLine&);  // Not implemented.
82 };
83
84 #endif
85
86