Medical Imaging Interaction Toolkit  2022.10.99-748b94b4
Medical Imaging Interaction Toolkit
vtkNeverTranslucentTexture Class Reference

VTK Fix to speed up our image rendering. More...

#include <vtkNeverTranslucentTexture.h>

Inheritance diagram for vtkNeverTranslucentTexture:
Collaboration diagram for vtkNeverTranslucentTexture:

Public Member Functions

 vtkTypeMacro (vtkNeverTranslucentTexture, vtkOpenGLTexture)
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
int IsTranslucent () override
 The FIX (see class description). More...
 

Static Public Member Functions

static vtkNeverTranslucentTextureNew ()
 

Protected Member Functions

 vtkNeverTranslucentTexture ()
 

Detailed Description

VTK Fix to speed up our image rendering.

The way we render images while changing the contrast via level/window extremely slows down rendering.

The cause of this slowdown is that VTK asks a texture (via a call to IsTranslucent) if it is translucent. When the texture refers to a lookup table this question is answered in a most expensive way: pushing every pixel through the lookup table to see whether it would render translucent.

We can speed this up extremely by always answering NO. 2D Image rendering in the context of MITK is still correct.

This class is injected into the VTK system by registering it with vtkObjectFactory as a replacement for vtkTexture.

We chose vtkOpenGLTexture as super class, because it seems that the other texture super class is deprecated: http://www.cmake.org/Wiki/VTK:How_I_mangled_Mesa

See also
ImageVtkMapper2D

Definition at line 49 of file vtkNeverTranslucentTexture.h.

Constructor & Destructor Documentation

◆ vtkNeverTranslucentTexture()

vtkNeverTranslucentTexture::vtkNeverTranslucentTexture ( )
protected

Member Function Documentation

◆ IsTranslucent()

int vtkNeverTranslucentTexture::IsTranslucent ( )
override

The FIX (see class description).

VTK Description: Is this Texture Translucent?

Returns false (0) if the texture is either fully opaque or has only fully transparent pixels and fully opaque pixels and the Interpolate flag is turn off.

◆ New()

static vtkNeverTranslucentTexture* vtkNeverTranslucentTexture::New ( )
static

◆ PrintSelf()

void vtkNeverTranslucentTexture::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
override

◆ vtkTypeMacro()

vtkNeverTranslucentTexture::vtkTypeMacro ( vtkNeverTranslucentTexture  ,
vtkOpenGLTexture   
)

The documentation for this class was generated from the following file: