VTK
dox/Rendering/vtkLineIntegralConvolution2D.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkLineIntegralConvolution2D.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
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 & ); // Not implemented.
00235   void operator = ( const vtkLineIntegralConvolution2D & );             // Not implemented.
00236 //ETX
00237 };
00238 
00239 #endif