92#ifndef vtkLineIntegralConvolution2D_h
93#define vtkLineIntegralConvolution2D_h
96#include "vtkRenderingLICOpenGL2Module.h"
136 vtkSetClampMacro(EnhancedLIC,
int, 0, 1);
137 vtkGetMacro(EnhancedLIC,
int);
138 vtkBooleanMacro(EnhancedLIC,
int);
165 ENHANCE_CONTRAST_OFF = 0,
166 ENHANCE_CONTRAST_ON = 1
168 vtkSetClampMacro(EnhanceContrast,
int, 0, 2);
169 vtkGetMacro(EnhanceContrast,
int);
170 vtkBooleanMacro(EnhanceContrast,
int);
191 vtkSetClampMacro(LowContrastEnhancementFactor,
double, 0.0, 1.0);
192 vtkGetMacro(LowContrastEnhancementFactor,
double);
193 vtkSetClampMacro(HighContrastEnhancementFactor,
double, 0.0, 1.0);
194 vtkGetMacro(HighContrastEnhancementFactor,
double);
205 vtkGetMacro(AntiAlias,
int);
206 vtkBooleanMacro(AntiAlias,
int);
215 vtkGetMacro(NumberOfSteps,
int);
227 vtkGetMacro(StepSize,
double);
238 vtkGetVector2Macro(ComponentIds,
int);
247 vtkSetClampMacro(MaxNoiseValue,
double, 0.0, 1.0);
248 vtkGetMacro(MaxNoiseValue,
double);
259 vtkGetMacro(TransformVectors,
int);
284 vtkGetMacro(NormalizeVectors,
int);
298 vtkGetMacro(MaskThreshold,
double);
325 const std::deque<vtkPixelExtent>& vectorExtent,
const std::deque<vtkPixelExtent>& licExtent,
a simple class to control print indentation
GPU-based implementation of Line Integral Convolution (LIC)
vtkOpenGLHelper * CEShader
vtkWeakPointer< vtkOpenGLRenderWindow > Context
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.
vtkOpenGLHelper * LICIShader
void SetAAHShader(vtkShaderProgram *prog)
vtkTextureObject * AllocateBuffer(unsigned int texSize[2])
vtkOpenGLHelper * VTShader
virtual void WriteTimerLog(const char *)
Methods used for parallel benchmarks.
vtkOpenGLHelper * IntermediateBlendProgram
vtkOpenGLHelper * LIC0Shader
void SetLIC0Shader(vtkShaderProgram *prog)
vtkOpenGLHelper * FinalBlendProgram
vtkPainterCommunicator * Comm
~vtkLineIntegralConvolution2D() override
vtkOpenGLHelper * AAVShader
static void SetVectorTexParameters(vtkTextureObject *vectors)
Convenience functions to ensure that the input textures are configured correctly.
void SetCEShader(vtkShaderProgram *prog)
void SetLICNShader(vtkShaderProgram *prog)
void SetContext(vtkOpenGLRenderWindow *context)
Set/Get the rendering context.
void SetNoise2TexParameters(vtkTextureObject *noise)
Convenience functions to ensure that the input textures are configured correctly.
void SetComponentIds(int c0, int c1)
If VectorField has >= 3 components, we must choose which 2 components form the (X,...
virtual vtkPainterCommunicator * GetCommunicator()
virtual void GetGlobalMinMax(vtkPainterCommunicator *, float &, float &)
For parallel operation, find global min/max min/max are in/out.
virtual void StartTimerEvent(const char *)
Methods used for parallel benchmarks.
void SetVTShader(vtkShaderProgram *prog)
void RenderQuad(float computeBounds[4], vtkPixelExtent computeExtent)
void SetComponentIds(int c[2])
If VectorField has >= 3 components, we must choose which 2 components form the (X,...
int NoiseTextureLookupCompatibilityMode
static bool IsSupported(vtkRenderWindow *renWin)
Returns if the context supports the required extensions.
static vtkLineIntegralConvolution2D * New()
virtual void EndTimerEvent(const char *)
void SetAAVShader(vtkShaderProgram *prog)
vtkTextureObject * Execute(vtkTextureObject *vectorTex, vtkTextureObject *noiseTex)
Compute the lic on the entire vector field texture.
vtkOpenGLHelper * AAHShader
vtkTextureObject * Execute(const int extent[4], vtkTextureObject *vectorTex, vtkTextureObject *noiseTex)
Compute the lic on the indicated subset of the vector field texture.
vtkOpenGLHelper * LICNShader
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
double LowContrastEnhancementFactor
void SetTransformVectors(int val)
This class performs LIC in the normalized image space.
vtkOpenGLRenderWindow * GetContext()
Set/Get the rendering context.
vtkOpenGLFramebufferObject * FBO
virtual void SetCommunicator(vtkPainterCommunicator *)
Set the communicator to use during parallel operation The communicator will not be duplicated or refe...
double HighContrastEnhancementFactor
static void SetNoiseTexParameters(vtkTextureObject *noise)
void SetLICIShader(vtkShaderProgram *prog)
vtkLineIntegralConvolution2D()
void SetNormalizeVectors(int val)
Set/Get the spacing in each dimension of the plane on which the vector field is defined.
void SetEEShader(vtkShaderProgram *prog)
vtkOpenGLHelper * EEShader
abstract base class for most VTK objects
Internal class which encapsulates OpenGL FramebufferObject.
A communicator that can safely be used inside a painter.
Representation of a cartesian pixel plane and common operations on it.
create a window for renderers to draw into
The ShaderProgram uses one or more Shader objects.
abstracts an OpenGL texture object.
a weak reference to a vtkObject.