15#ifndef vtkOpenGLFluidMapper_h 
   16#define vtkOpenGLFluidMapper_h 
   21#include "vtkRenderingOpenGL2Module.h"  
   27VTK_ABI_NAMESPACE_BEGIN
 
   57  vtkSetMacro(ScalarVisibility, 
bool);
 
   58  vtkGetMacro(ScalarVisibility, 
bool);
 
   59  vtkBooleanMacro(ScalarVisibility, 
bool);
 
   70  vtkSetMacro(ParticleRadius, 
float);
 
   71  vtkGetMacro(ParticleRadius, 
float);
 
   81  vtkSetMacro(SurfaceFilterIterations, uint32_t);
 
   82  vtkGetMacro(SurfaceFilterIterations, uint32_t);
 
   90  vtkSetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
 
   91  vtkGetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
 
  102  vtkSetMacro(SurfaceFilterRadius, uint32_t);
 
  103  vtkGetMacro(SurfaceFilterRadius, uint32_t);
 
  111  vtkSetMacro(ThicknessAndVolumeColorFilterRadius, 
float);
 
  112  vtkGetMacro(ThicknessAndVolumeColorFilterRadius, 
float);
 
  120    BilateralGaussian = 0,
 
  141    this->NRFilterLambda = lambda;
 
  142    this->NRFilterMu = mu;
 
  151    this->BiGaussFilterSigmaDepth = sigmaDepth;
 
  159    UnfilteredOpaqueSurface = 0,
 
  181  vtkSetVector3Macro(AttenuationColor, 
float);
 
  182  vtkGetVector3Macro(AttenuationColor, 
float);
 
  190  vtkSetVector3Macro(OpaqueColor, 
float);
 
  191  vtkGetVector3Macro(OpaqueColor, 
float);
 
  201  vtkSetMacro(ParticleColorPower, 
float);
 
  202  vtkGetMacro(ParticleColorPower, 
float);
 
  212  vtkSetMacro(ParticleColorScale, 
float);
 
  213  vtkGetMacro(ParticleColorScale, 
float);
 
  223  vtkSetMacro(AttenuationScale, 
float);
 
  224  vtkGetMacro(AttenuationScale, 
float);
 
  234  vtkSetMacro(AdditionalReflection, 
float);
 
  235  vtkGetMacro(AdditionalReflection, 
float);
 
  245  vtkSetMacro(RefractionScale, 
float);
 
  246  vtkGetMacro(RefractionScale, 
float);
 
  253  vtkSetMacro(RefractiveIndex, 
float);
 
  254  vtkGetMacro(RefractiveIndex, 
float);
 
  297  float ParticleRadius = 1.0f;
 
  300  uint32_t SurfaceFilterIterations = 3u;
 
  301  uint32_t SurfaceFilterRadius = 5u;
 
  302  float NRFilterLambda = 10.0f;
 
  303  float NRFilterMu = 1.0f;
 
  304  float BiGaussFilterSigmaDepth = 10.0f;
 
  306  uint32_t ThicknessAndVolumeColorFilterIterations = 3u;
 
  307  uint32_t ThicknessAndVolumeColorFilterRadius = 10u;
 
  311  float OpaqueColor[3]{ 0.0f, 0.0f, 0.95f };
 
  312  float AttenuationColor[3]{ 0.5f, 0.2f, 0.05f };
 
  313  float ParticleColorPower = 0.1f;
 
  314  float ParticleColorScale = 1.0f;
 
  315  float AttenuationScale = 1.0f;
 
  316  float AdditionalReflection = 0.0f;
 
  317  float RefractionScale = 1.0f;
 
  318  float RefractiveIndex = 1.33f;
 
  320  bool ScalarVisibility = 
false;
 
  321  bool InDepthPass = 
true;
 
  326  bool HasVertexColor = 
false;
 
  379    NumOptionalTexBuffers
 
Abstract class for a volume mapper.
 
a simple class to control print indentation
 
represent and manipulate 3x3 transformation matrices
 
represent and manipulate 4x4 transformation matrices
 
Render fluid from position data (and color, if available)
 
vtkMatrix3x3 * CamInvertedNorms
 
void SetInputData(vtkPolyData *in)
Specify the input data to map.
 
vtkSmartPointer< vtkOpenGLFramebufferObject > FBThickness
 
FluidDisplayMode
Display mode for the fluid, default value is TransparentFluidVolume.
 
@ UnfilteredSurfaceNormal
 
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
 
vtkSmartPointer< vtkOpenGLVertexBufferObjectGroup > VBOs
 
void SetNarrowRangeFilterParameters(float lambda, float mu)
Optional parameters, exclusively for narrow range filter The first parameter is to control smoothing ...
 
vtkTimeStamp VBOBuildTime
 
void Render(vtkRenderer *ren, vtkVolume *vol) override
This calls RenderPiece.
 
vtkSmartPointer< vtkOpenGLFramebufferObject > FBCompNormal
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
vtkMatrix4x4 * TempMatrix4
 
vtkPolyData * GetInput()
Specify the input data to map.
 
vtkTypeBool CamParallelProjection
 
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFluidEyeZ
 
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterThickness
 
FluidSurfaceFilterMethod
Filter method to filter the depth buffer.
 
~vtkOpenGLFluidMapper() override
 
void SetupBuffers(vtkOpenGLRenderWindow *renderWindow)
Setup the texture buffers.
 
void UpdateDepthThicknessColorShaders(vtkOpenGLHelper &glHelper, vtkRenderer *renderer, vtkVolume *vol)
Perform string replacements on the shader templates.
 
static vtkOpenGLFluidMapper * New()
 
void RenderParticles(vtkRenderer *renderer, vtkVolume *vol)
Render the fluid particles.
 
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterDepth
 
void SetBilateralGaussianFilterParameter(float sigmaDepth)
Optional parameters, exclusively for bilateral gaussian filter The parameter is for controlling smoot...
 
vtkOpenGLHelper GLHelperDepthThickness
 
void SetDepthThicknessColorShaderParameters(vtkOpenGLHelper &glHelper, vtkRenderer *renderer, vtkVolume *vol)
Set the shader parameters related to the actor/mapper/camera.
 
Internal class which encapsulates OpenGL FramebufferObject.
 
Class to make rendering a full screen quad easier.
 
manage vertex buffer objects shared within a mapper
 
concrete dataset represents vertices, lines, polygons, and triangle strips
 
abstract specification for renderers
 
Hold a reference to a vtkObjectBase instance.
 
abstracts an OpenGL texture object.
 
record modification and/or execution time
 
represents a volume (data & properties) in a rendered scene
 
window superclass for vtkRenderWindow