Go to the documentation of this file.
92 #ifndef vtkLineIntegralConvolution2D_h
93 #define vtkLineIntegralConvolution2D_h
97 #include "vtkRenderingLICOpenGL2Module.h"
136 vtkSetClampMacro(EnhancedLIC,
int, 0, 1);
137 vtkGetMacro(EnhancedLIC,
int);
164 ENHANCE_CONTRAST_OFF=0,
165 ENHANCE_CONTRAST_ON=1};
166 vtkSetClampMacro(EnhanceContrast,
int, 0, 2);
167 vtkGetMacro(EnhanceContrast,
int);
189 vtkSetClampMacro(LowContrastEnhancementFactor,
double, 0.0, 1.0);
190 vtkGetMacro(LowContrastEnhancementFactor,
double);
191 vtkSetClampMacro(HighContrastEnhancementFactor,
double, 0.0, 1.0);
192 vtkGetMacro(HighContrastEnhancementFactor,
double);
203 vtkGetMacro(AntiAlias,
int);
213 vtkGetMacro(NumberOfSteps,
int);
225 vtkGetMacro(StepSize,
double);
236 vtkGetVector2Macro(ComponentIds,
int);
245 vtkSetClampMacro(MaxNoiseValue,
double, 0.0, 1.0);
246 vtkGetMacro(MaxNoiseValue,
double);
257 vtkGetMacro(TransformVectors,
int);
282 vtkGetMacro(NormalizeVectors,
int);
296 vtkGetMacro(MaskThreshold,
double);
329 const std::deque<vtkPixelExtent> &vectorExtent,
330 const std::deque<vtkPixelExtent> &licExtent,
390 float computeBounds[4],
414 int ShadersNeedBuild;
430 double LowContrastEnhancementFactor;
431 double HighContrastEnhancementFactor;
433 int NoiseTextureLookupCompatibilityMode;
434 double MaskThreshold;
435 int TransformVectors;
436 int NormalizeVectors;
438 double MaxNoiseValue;
static void SetVectorTexParameters(vtkTextureObject *vectors)
Convenience functions to ensure that the input textures are configured correctly.
vtkOpenGLHelper * LICNShader
virtual vtkPainterCommunicator * GetCommunicator()
vtkOpenGLHelper * FinalBlendProgram
vtkOpenGLHelper * LIC0Shader
virtual void EndTimerEvent(const char *)
vtkTextureObject * Execute(vtkTextureObject *vectorTex, vtkTextureObject *noiseTex)
Compute the lic on the entire vector field texture.
void SetNoise2TexParameters(vtkTextureObject *noise)
Convenience functions to ensure that the input textures are configured correctly.
vtkTextureObject * Execute(const vtkPixelExtent &inputTexExtent, const std::deque< vtkPixelExtent > &vectorExtent, const std::deque< vtkPixelExtent > &licExtent, vtkTextureObject *vectorTex, vtkTextureObject *maskVectorTex, vtkTextureObject *noiseTex)
Compute LIC over the desired subset of the input texture.
abstract base class for most VTK objects
void SetComponentIds(int c[2])
vtkLineIntegralConvolution2D()
virtual void StartTimerEvent(const char *)
Methods used for parallel benchmarks.
void SetEEShader(vtkShaderProgram *prog)
void SetVTShader(vtkShaderProgram *prog)
Representation of a cartesian pixel plane and common operations on it.
vtkTextureObject * Execute(const int extent[4], vtkTextureObject *vectorTex, vtkTextureObject *noiseTex)
Compute the lic on the indicated subset of the vector field texture.
void SetNormalizeVectors(int val)
Set/Get the spacing in each dimension of the plane on which the vector field is defined.
vtkWeakPointer< vtkOpenGLRenderWindow > Context
The ShaderProgram uses one or more Shader objects.
a simple class to control print indentation
abstracts an OpenGL texture object.
void SetLICNShader(vtkShaderProgram *prog)
void SetComponentIds(int c0, int c1)
If VectorField has >= 3 components, we must choose which 2 components form the (X,...
void SetAAVShader(vtkShaderProgram *prog)
void SetTransformVectors(int val)
This class performs LIC in the normalized image space.
void SetContext(vtkOpenGLRenderWindow *context)
Set/Get the rendering context.
void SetLIC0Shader(vtkShaderProgram *prog)
vtkOpenGLRenderWindow * GetContext()
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
void SetCEShader(vtkShaderProgram *prog)
A communicator that can safely be used inside a painter.
vtkOpenGLHelper * EEShader
vtkOpenGLHelper * AAVShader
GPU-based implementation of Line Integral Convolution (LIC)
virtual ~vtkLineIntegralConvolution2D()
void SetAAHShader(vtkShaderProgram *prog)
vtkTextureObject * AllocateBuffer(unsigned int texSize[2])
vtkOpenGLHelper * IntermediateBlendProgram
vtkOpenGLHelper * LICIShader
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void SetLICIShader(vtkShaderProgram *prog)
static bool IsSupported(vtkRenderWindow *renWin)
Returns if the context supports the required extensions.
virtual void SetCommunicator(vtkPainterCommunicator *)
Set the communicator to use during parallel operation The communicator will not be duplicated or refe...
static vtkLineIntegralConvolution2D * New()
create a window for renderers to draw into
void RenderQuad(float computeBounds[4], vtkPixelExtent computeExtent)
Interface to OpenGL framebuffer object.
vtkOpenGLHelper * CEShader
virtual void WriteTimerLog(const char *)
Methods used for parallel benchmarks.
virtual void GetGlobalMinMax(vtkPainterCommunicator *, float &, float &)
For parallel operation, find global min/max min/max are in/out.
vtkOpenGLHelper * VTShader
static void SetNoiseTexParameters(vtkTextureObject *noise)
vtkOpenGLHelper * AAHShader