Go to the documentation of this file.
92 #ifndef vtkLineIntegralConvolution2D_h
93 #define vtkLineIntegralConvolution2D_h
97 #include "vtkRenderingLICModule.h"
134 vtkSetClampMacro(EnhancedLIC,
int, 0, 1);
135 vtkGetMacro(EnhancedLIC,
int);
162 ENHANCE_CONTRAST_OFF=0,
163 ENHANCE_CONTRAST_ON=1};
164 vtkSetClampMacro(EnhanceContrast,
int, 0, 2);
165 vtkGetMacro(EnhanceContrast,
int);
187 vtkSetClampMacro(LowContrastEnhancementFactor,
double, 0.0, 1.0);
188 vtkGetMacro(LowContrastEnhancementFactor,
double);
189 vtkSetClampMacro(HighContrastEnhancementFactor,
double, 0.0, 1.0);
190 vtkGetMacro(HighContrastEnhancementFactor,
double);
201 vtkGetMacro(AntiAlias,
int);
211 vtkGetMacro(NumberOfSteps,
int);
223 vtkGetMacro(StepSize,
double);
234 vtkGetVector2Macro(ComponentIds,
int);
243 vtkSetClampMacro(MaxNoiseValue,
double, 0.0, 1.0);
244 vtkGetMacro(MaxNoiseValue,
double);
255 vtkGetMacro(TransformVectors,
int);
280 vtkGetMacro(NormalizeVectors,
int);
294 vtkGetMacro(MaskThreshold,
double);
327 const std::deque<vtkPixelExtent> &vectorExtent,
328 const std::deque<vtkPixelExtent> &licExtent,
386 float computeBounds[4],
static void SetVectorTexParameters(vtkTextureObject *vectors)
Convenience functions to ensure that the input textures are configured correctly.
virtual vtkPainterCommunicator * GetCommunicator()
vtkShaderProgram2 * CEShader
virtual void EndTimerEvent(const char *)
vtkTextureObject * Execute(vtkTextureObject *vectorTex, vtkTextureObject *noiseTex)
Compute the lic on the entire vector field texture.
void SetCEShader(vtkShaderProgram2 *prog)
void SetLICIShader(vtkShaderProgram2 *prog)
void SetAAVShader(vtkShaderProgram2 *prog)
void SetEEShader(vtkShaderProgram2 *prog)
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
int NoiseTextureLookupCompatibilityMode
vtkWeakPointer< vtkRenderWindow > Context
void SetComponentIds(int c[2])
vtkLineIntegralConvolution2D()
void SetContext(vtkRenderWindow *context)
Set/Get the rendering context.
double HighContrastEnhancementFactor
void SetVTShader(vtkShaderProgram2 *prog)
void SetLIC0Shader(vtkShaderProgram2 *prog)
virtual void StartTimerEvent(const char *)
Methods used for parallel benchmarks.
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.
vtkShaderProgram2 * AAHShader
void SetNormalizeVectors(int val)
Set/Get the spacing in each dimension of the plane on which the vector field is defined.
vtkShaderProgram2 * AAVShader
vtkRenderWindow * GetContext()
void SetLICNShader(vtkShaderProgram2 *prog)
a simple class to control print indentation
abstracts an OpenGL texture object.
void SetComponentIds(int c0, int c1)
If VectorField has >= 3 components, we must choose which 2 components form the (X,...
void SetTransformVectors(int val)
This class performs LIC in the normalized image space.
double LowContrastEnhancementFactor
vtkShaderProgram2 * LICNShader
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkShaderProgram2 * EEShader
A communicator that can safely be used inside a painter.
GPU-based implementation of Line Integral Convolution (LIC)
virtual ~vtkLineIntegralConvolution2D()
vtkShaderProgram2 * LICIShader
vtkTextureObject * AllocateBuffer(unsigned int texSize[2])
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
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
vtkShaderProgram2 * LIC0Shader
void RenderQuad(float computeBounds[4], vtkPixelExtent computeExtent)
Interface to OpenGL framebuffer object.
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.
static void SetNoiseTexParameters(vtkTextureObject *noise)
vtkFrameBufferObject2 * FBO
void SetAAHShader(vtkShaderProgram2 *prog)
vtkShaderProgram2 * VTShader
vtkPainterCommunicator * Comm