00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00078 #ifndef __vtkLineIntegralConvolution2D_h
00079 #define __vtkLineIntegralConvolution2D_h
00080
00081 #include "vtkObject.h"
00082
00083 class vtkRenderWindow;
00084 class vtkTextureObject;
00085
00086 class VTK_RENDERING_EXPORT vtkLineIntegralConvolution2D : public vtkObject
00087 {
00088 public:
00089
00090 static vtkLineIntegralConvolution2D * New();
00091 vtkTypeMacro( vtkLineIntegralConvolution2D, vtkObject );
00092 void PrintSelf( ostream & os, vtkIndent indent );
00093
00095
00101 vtkSetMacro( EnhancedLIC, int );
00102 vtkGetMacro( EnhancedLIC, int );
00103 vtkBooleanMacro( EnhancedLIC, int );
00105
00107
00109 vtkSetMacro( LICForSurface, int );
00110 vtkGetMacro( LICForSurface, int );
00111 vtkBooleanMacro( LICForSurface, int );
00113
00115
00117 vtkSetMacro( NumberOfSteps, int );
00118 vtkGetMacro( NumberOfSteps, int );
00120
00122
00128 vtkSetClampMacro( LICStepSize, double, 0.0, 1.0 );
00129 vtkGetMacro( LICStepSize, double );
00131
00133
00134 void SetNoise( vtkTextureObject * noise );
00135 vtkGetObjectMacro( Noise, vtkTextureObject );
00137
00139
00140 void SetVectorField( vtkTextureObject * vectorField );
00141 vtkGetObjectMacro( VectorField, vtkTextureObject );
00143
00145
00148 vtkSetVector2Macro( ComponentIds, int );
00149 vtkGetVector2Macro( ComponentIds, int );
00151
00153
00160 vtkSetVector2Macro( GridSpacings, double );
00161 vtkGetVector2Macro( GridSpacings, double );
00163
00165
00169 vtkSetClampMacro( TransformVectors, int, 0, 1 );
00170 vtkBooleanMacro( TransformVectors, int );
00171 vtkGetMacro( TransformVectors, int );
00173
00175
00176 vtkSetClampMacro( Magnification, int, 1, VTK_INT_MAX );
00177 vtkGetMacro( Magnification, int );
00179
00181
00184 void SetVectorShiftScale( double shift, double scale )
00185 {
00186 this->VectorShift = shift;
00187 this->VectorScale = scale;
00188 this->Modified();
00189 }
00191
00193 static bool IsSupported( vtkRenderWindow * renWin );
00194
00196 int Execute();
00197
00199
00203 int Execute( unsigned int extent[4] );
00204 int Execute( int extent[4] );
00206
00208
00209 void SetLIC( vtkTextureObject * lic );
00210 vtkGetObjectMacro( LIC, vtkTextureObject );
00212
00213 protected:
00214 vtkLineIntegralConvolution2D();
00215 ~vtkLineIntegralConvolution2D();
00216
00217 int Magnification;
00218 int NumberOfSteps;
00219 int LICForSurface;
00220 int EnhancedLIC;
00221 double LICStepSize;
00222 double VectorShift;
00223 double VectorScale;
00224
00225 int TransformVectors;
00226 int ComponentIds[2];
00227 double GridSpacings[2];
00228
00229 vtkTextureObject * VectorField;
00230 vtkTextureObject * Noise;
00231 vtkTextureObject * LIC;
00232
00233 private:
00234 vtkLineIntegralConvolution2D( const vtkLineIntegralConvolution2D & );
00235 void operator = ( const vtkLineIntegralConvolution2D & );
00236
00237 };
00238
00239 #endif