VTK
vtkOpenGLImageSliceMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkOpenGLImageSliceMapper.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 vtkOpenGLImageSliceMapper_h
27#define vtkOpenGLImageSliceMapper_h
28
29#include "vtkRenderingOpenGLModule.h" // For export macro
30#include "vtkImageSliceMapper.h"
31
32class vtkWindow;
33class vtkRenderer;
34class vtkRenderWindow;
36class vtkImageSlice;
38class vtkImageData;
39
40class VTKRENDERINGOPENGL_EXPORT vtkOpenGLImageSliceMapper :
42{
43public:
46 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
47
51 void Render(vtkRenderer *ren, vtkImageSlice *prop);
52
59
60protected:
63
68 double red, double green, double blue,
69 double alpha, double ambient, double diffuse);
70
77 vtkRenderer *ren, vtkImageProperty *property,
78 vtkImageData *image, int extent[6], bool recursive);
79
85 vtkRenderer *ren, vtkImageProperty *property,
86 vtkImageData *image, int extent[6], bool recursive);
87
92 void RenderPolygon(vtkPoints *points, const int extent[6], bool textured);
93
99 vtkPoints *points, const int extent[6], bool textured);
100
105
110
119 const int extent[6], int &xdim, int &ydim,
120 int imageSize[2], int textureSize[2]);
121
126 bool TextureSizeOK(const int size[2]);
127
132
133 long TextureIndex; // OpenGL ID for texture or display list
134 long BackgroundTextureIndex; // OpenGL ID for texture or display list
135 long FragmentShaderIndex; // OpenGL ID for fragment shader
136 vtkRenderWindow *RenderWindow; // RenderWindow used for previous render
137 int TextureSize[2];
141
144
148
149private:
150 vtkOpenGLImageSliceMapper(const vtkOpenGLImageSliceMapper&) VTK_DELETE_FUNCTION;
151 void operator=(const vtkOpenGLImageSliceMapper&) VTK_DELETE_FUNCTION;
152};
153
154#endif
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
image display properties
map a slice of a vtkImageData to the screen
represents an image in a 3D scene
Definition: vtkImageSlice.h:53
a simple class to control print indentation
Definition: vtkIndent.h:40
OpenGL mapper for image slice display.
void CheckOpenGLCapabilities(vtkOpenGLRenderWindow *renWin)
Check various OpenGL capabilities.
void RecursiveRenderTexturedPolygon(vtkRenderer *ren, vtkImageProperty *property, vtkImageData *image, int extent[6], bool recursive)
Recursive internal method, will call the non-recursive method as many times as necessary if the textu...
void BindFragmentProgram(vtkRenderer *ren, vtkImageProperty *property)
Bind the fragment program, and generate it first if necessary.
bool TextureSizeOK(const int size[2])
Test whether a given texture size is supported.
void RenderTexturedPolygon(vtkRenderer *ren, vtkImageProperty *property, vtkImageData *image, int extent[6], bool recursive)
Non-recursive internal method, generate a single texture and its corresponding geometry.
static vtkOpenGLImageSliceMapper * New()
void RenderPolygon(vtkPoints *points, const int extent[6], bool textured)
Basic polygon rendering, if the textured parameter is set the tcoords are included,...
void RenderColorAndLighting(double red, double green, double blue, double alpha, double ambient, double diffuse)
Call the OpenGL code that does color and lighting.
vtkStdString BuildFragmentProgram(vtkImageProperty *property)
Build the fragment program to use with the texture.
void RenderBackground(vtkPoints *points, const int extent[6], bool textured)
Render the background, which means rendering everything within the plane of the image except for the ...
void ComputeTextureSize(const int extent[6], int &xdim, int &ydim, int imageSize[2], int textureSize[2])
Given an extent that describes a slice (it must have unit thickness in one of the three directions),...
void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this mapper, the image texture in particula...
void Render(vtkRenderer *ren, vtkImageSlice *prop)
Implement base class method.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
OpenGL rendering window.
represent and manipulate 3D points
Definition: vtkPoints.h:40
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:64
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
record modification and/or execution time
Definition: vtkTimeStamp.h:36
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ points
Definition: vtkX3D.h:446
@ extent
Definition: vtkX3D.h:345
@ alpha
Definition: vtkX3D.h:250
@ image
Definition: vtkX3D.h:374
@ size
Definition: vtkX3D.h:253