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 
32 class vtkWindow;
33 class vtkRenderer;
34 class vtkRenderWindow;
36 class vtkImageSlice;
37 class vtkImageProperty;
38 class vtkImageData;
39 
40 class VTKRENDERINGOPENGL_EXPORT vtkOpenGLImageSliceMapper :
41  public vtkImageSliceMapper
42 {
43 public:
46  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
47 
51  void Render(vtkRenderer *ren, vtkImageSlice *prop);
52 
59 
60 protected:
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 
149 private:
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