VTK
vtkOpenGLVolumeTextureMapper3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenGLVolumeTextureMapper3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef vtkOpenGLVolumeTextureMapper3D_h
27 #define vtkOpenGLVolumeTextureMapper3D_h
28 
29 #include "vtkRenderingVolumeOpenGLModule.h" // For export macro
31 #include "vtkOpenGL.h" // GLfloat type is used in some method signatures.
32 
33 class vtkRenderWindow;
34 class vtkVolumeProperty;
35 
38 {
39 public:
41  void PrintSelf(ostream& os, vtkIndent indent);
42 
44 
46 
50  vtkRenderer *ren);
52 
53 //BTX
54 
57  virtual void Render(vtkRenderer *ren, vtkVolume *vol);
58 
59 //ETX
60 
61  // Desciption:
62  // Initialize when we go to render, or go to answer the
63  // IsRenderSupported question. Don't call unless we have
64  // a valid OpenGL context!
65  vtkGetMacro( Initialized, int );
66 
71 
72 protected:
75 
76 //BTX
77 
79  vtkVolume *vol,
80  GLfloat lightDirection[2][4],
81  GLfloat lightDiffuseColor[2][4],
82  GLfloat lightSpecularColor[2][4],
83  GLfloat halfwayVector[2][4],
84  GLfloat *ambient );
85 //ETX
86 
94 
97 
98  // Actual internal texture format (uncompressed vs compressed)
99  // Computed in Render()
100  int InternalAlpha; // GLint
101  int InternalLA; // GLint
102  int InternalRGB; // GLint
103  int InternalRGBA; // GLint
104 
106 
107  virtual void RenderNV(vtkRenderer *ren, vtkVolume *vol);
108  virtual void RenderFP(vtkRenderer *ren, vtkVolume *vol);
109 
111  vtkVolume *vol );
117 
124 
128 
130  vtkVolume *vol,
131  int components );
132 
134  vtkVolume *vol,
135  int components );
136 
139 
141  vtkVolume *vol,
142  int stages[4] );
143 
145 
147 
150  int components);
152 
155 
156 private:
158  void operator=(const vtkOpenGLVolumeTextureMapper3D&); // Not implemented.
159 };
160 
161 #endif
vtkOpenGLVolumeTextureMapper3D::SupportsCompressedTexture
bool SupportsCompressedTexture
Definition: vtkOpenGLVolumeTextureMapper3D.h:95
vtkOpenGLVolumeTextureMapper3D::RenderFourDependentNoShadeNV
void RenderFourDependentNoShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::SetupOneIndependentTextures
void SetupOneIndependentTextures(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::~vtkOpenGLVolumeTextureMapper3D
~vtkOpenGLVolumeTextureMapper3D()
vtkVolumeTextureMapper3D
volume render with 3D texture mapping
Definition: vtkVolumeTextureMapper3D.h:93
vtkOpenGLVolumeTextureMapper3D::Initialized
int Initialized
Definition: vtkOpenGLVolumeTextureMapper3D.h:87
vtkOpenGLVolumeTextureMapper3D::RenderOneIndependentNoShadeFP
void RenderOneIndependentNoShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:50
vtkOpenGLVolumeTextureMapper3D::SetupRegisterCombinersShadeNV
void SetupRegisterCombinersShadeNV(vtkRenderer *ren, vtkVolume *vol, int components)
vtkOpenGLVolumeTextureMapper3D::Volume3Index
GLuint Volume3Index
Definition: vtkOpenGLVolumeTextureMapper3D.h:90
vtkOpenGLVolumeTextureMapper3D::DeleteTextureIndex
void DeleteTextureIndex(GLuint *index)
vtkgl::stages
GLbitfield stages
Definition: vtkgl.h:14211
vtkOpenGLVolumeTextureMapper3D::RenderPolygons
void RenderPolygons(vtkRenderer *ren, vtkVolume *vol, int stages[4])
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkOpenGLVolumeTextureMapper3D::Volume2Index
GLuint Volume2Index
Definition: vtkOpenGLVolumeTextureMapper3D.h:89
vtkOpenGLVolumeTextureMapper3D::Initialize
void Initialize(vtkRenderer *r)
vtkOpenGLVolumeTextureMapper3D::vtkOpenGLVolumeTextureMapper3D
vtkOpenGLVolumeTextureMapper3D()
vtkOpenGLVolumeTextureMapper3D::RenderFourDependentShadeFP
void RenderFourDependentShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::SupportsNonPowerOfTwoTextures
bool SupportsNonPowerOfTwoTextures
Definition: vtkOpenGLVolumeTextureMapper3D.h:96
vtkOpenGLVolumeTextureMapper3D::InternalRGBA
int InternalRGBA
Definition: vtkOpenGLVolumeTextureMapper3D.h:103
vtkOpenGLVolumeTextureMapper3D::RenderTwoDependentNoShadeNV
void RenderTwoDependentNoShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D
concrete implementation of 3D volume texture mapping
Definition: vtkOpenGLVolumeTextureMapper3D.h:38
vtkOpenGLVolumeTextureMapper3D::InternalLA
int InternalLA
Definition: vtkOpenGLVolumeTextureMapper3D.h:101
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
VTKRENDERINGVOLUMEOPENGL_EXPORT
#define VTKRENDERINGVOLUMEOPENGL_EXPORT
Definition: vtkRenderingVolumeOpenGLModule.h:15
vtkOpenGLVolumeTextureMapper3D::RenderTwoDependentNoShadeFP
void RenderTwoDependentNoShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::IsRenderSupported
int IsRenderSupported(vtkVolumeProperty *, vtkRenderer *ren)
vtkOpenGLVolumeTextureMapper3D::InternalRGB
int InternalRGB
Definition: vtkOpenGLVolumeTextureMapper3D.h:102
vtkOpenGLVolumeTextureMapper3D::SetupFourDependentTextures
void SetupFourDependentTextures(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::InternalAlpha
int InternalAlpha
Definition: vtkOpenGLVolumeTextureMapper3D.h:100
vtkOpenGLVolumeTextureMapper3D::AlphaLookupIndex
GLuint AlphaLookupIndex
Definition: vtkOpenGLVolumeTextureMapper3D.h:92
vtkOpenGLVolumeTextureMapper3D::New
static vtkOpenGLVolumeTextureMapper3D * New()
vtkOpenGLVolumeTextureMapper3D::SetupTwoDependentTextures
void SetupTwoDependentTextures(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::RenderTwoDependentShadeNV
void RenderTwoDependentShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkVolumeTextureMapper3D.h
vtkOpenGLVolumeTextureMapper3D::CreateTextureIndex
void CreateTextureIndex(GLuint *index)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkOpenGLVolumeTextureMapper3D::ColorLookupIndex
GLuint ColorLookupIndex
Definition: vtkOpenGLVolumeTextureMapper3D.h:91
vtkOpenGLVolumeTextureMapper3D::RenderWindow
vtkRenderWindow * RenderWindow
Definition: vtkOpenGLVolumeTextureMapper3D.h:93
vtkOpenGLVolumeTextureMapper3D::RenderFP
virtual void RenderFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::RenderTwoDependentShadeFP
void RenderTwoDependentShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkgl::GLuint
typedef GLuint(APIENTRYP PFNGLCREATEPROGRAMPROC)(void)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkOpenGLVolumeTextureMapper3D::GetLightInformation
void GetLightInformation(vtkRenderer *ren, vtkVolume *vol, GLfloat lightDirection[2][4], GLfloat lightDiffuseColor[2][4], GLfloat lightSpecularColor[2][4], GLfloat halfwayVector[2][4], GLfloat *ambient)
vtkOpenGLVolumeTextureMapper3D::Volume1Index
GLuint Volume1Index
Definition: vtkOpenGLVolumeTextureMapper3D.h:88
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkOpenGLVolumeTextureMapper3D::RenderOneIndependentNoShadeNV
void RenderOneIndependentNoShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkgl::r
GLdouble GLdouble GLdouble r
Definition: vtkgl.h:11610
vtkOpenGLVolumeTextureMapper3D::RenderNV
virtual void RenderNV(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::SetupProgramLocalsForShadingFP
void SetupProgramLocalsForShadingFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::RenderFourDependentShadeNV
void RenderFourDependentShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkOpenGLVolumeTextureMapper3D::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *)
vtkOpenGLVolumeTextureMapper3D::IsTextureSizeSupported
int IsTextureSizeSupported(int size[3], int components)
vtkOpenGLVolumeTextureMapper3D::RenderFourDependentNoShadeFP
void RenderFourDependentNoShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::SetupRegisterCombinersNoShadeNV
void SetupRegisterCombinersNoShadeNV(vtkRenderer *ren, vtkVolume *vol, int components)
vtkOpenGLVolumeTextureMapper3D::Setup3DTextureParameters
void Setup3DTextureParameters(vtkVolumeProperty *property)
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:89
vtkgl::components
GLenum GLenum GLuint components
Definition: vtkgl.h:16909
vtkOpenGLVolumeTextureMapper3D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkOpenGLVolumeTextureMapper3D::Render
virtual void Render(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::RenderOneIndependentShadeFP
void RenderOneIndependentShadeFP(vtkRenderer *ren, vtkVolume *vol)
vtkOpenGLVolumeTextureMapper3D::RenderOneIndependentShadeNV
void RenderOneIndependentShadeNV(vtkRenderer *ren, vtkVolume *vol)
vtkRenderingVolumeOpenGLModule.h
vtkVolumeProperty
represents the common properties for rendering a volume.
Definition: vtkVolumeProperty.h:60
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843