VTK
|
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