VTK
vtkLineIntegralConvolution2D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLineIntegralConvolution2D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
78 #ifndef __vtkLineIntegralConvolution2D_h
79 #define __vtkLineIntegralConvolution2D_h
80 
81 #include "vtkRenderingOpenGLModule.h" // For export macro
82 #include "vtkObject.h"
83 
84 class vtkRenderWindow;
85 class vtkTextureObject;
86 
87 class VTKRENDERINGOPENGL_EXPORT vtkLineIntegralConvolution2D : public vtkObject
88 {
89 public:
90 
93  void PrintSelf( ostream & os, vtkIndent indent );
94 
96 
102  vtkSetMacro( EnhancedLIC, int );
103  vtkGetMacro( EnhancedLIC, int );
104  vtkBooleanMacro( EnhancedLIC, int );
106 
108 
110  vtkSetMacro( LICForSurface, int );
111  vtkGetMacro( LICForSurface, int );
112  vtkBooleanMacro( LICForSurface, int );
114 
116 
118  vtkSetMacro( NumberOfSteps, int );
119  vtkGetMacro( NumberOfSteps, int );
121 
123 
129  vtkSetClampMacro( LICStepSize, double, 0.0, 1.0 );
130  vtkGetMacro( LICStepSize, double );
132 
134 
135  void SetNoise( vtkTextureObject * noise );
136  vtkGetObjectMacro( Noise, vtkTextureObject );
138 
140 
141  void SetVectorField( vtkTextureObject * vectorField );
142  vtkGetObjectMacro( VectorField, vtkTextureObject );
144 
146 
149  vtkSetVector2Macro( ComponentIds, int );
150  vtkGetVector2Macro( ComponentIds, int );
152 
154 
161  vtkSetVector2Macro( GridSpacings, double );
162  vtkGetVector2Macro( GridSpacings, double );
164 
166 
170  vtkSetClampMacro( TransformVectors, int, 0, 1 );
171  vtkBooleanMacro( TransformVectors, int );
172  vtkGetMacro( TransformVectors, int );
174 
176 
177  vtkSetClampMacro( Magnification, int, 1, VTK_INT_MAX );
178  vtkGetMacro( Magnification, int );
180 
182 
185  void SetVectorShiftScale( double shift, double scale )
186  {
187  this->VectorShift = shift;
188  this->VectorScale = scale;
189  this->Modified();
190  }
192 
194  static bool IsSupported( vtkRenderWindow * renWin );
195 
197  int Execute();
198 
200 
204  int Execute( unsigned int extent[4] );
205  int Execute( int extent[4] );
207 
209 
210  void SetLIC( vtkTextureObject * lic );
211  vtkGetObjectMacro( LIC, vtkTextureObject );
213 
214 protected:
217 
222  double LICStepSize;
223  double VectorShift;
224  double VectorScale;
225 
227  int ComponentIds[2];
228  double GridSpacings[2];
229 
233 
234 private:
235  vtkLineIntegralConvolution2D( const vtkLineIntegralConvolution2D & ); // Not implemented.
236  void operator = ( const vtkLineIntegralConvolution2D & ); // Not implemented.
237 //ETX
238 };
239 
240 #endif