1 /*=========================================================================
2 
3   Program:   Visualization Toolkit
4   Module:    vtkOpenGLVolumeGradientOpacityTable.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 =========================================================================*/
15 
16 #ifndef vtkOpenGLVolumeGradientOpacityTable_h
17 #define vtkOpenGLVolumeGradientOpacityTable_h
18 #ifndef __VTK_WRAP__
19 
20 #include "vtkOpenGLVolumeLookupTable.h"
21 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
22 
23 // Forward declarations
24 class vtkOpenGLRenderWindow;
25 
26 //----------------------------------------------------------------------------
27 class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkOpenGLVolumeGradientOpacityTable
28   : public vtkOpenGLVolumeLookupTable
29 {
30 public:
31   vtkTypeMacro(vtkOpenGLVolumeGradientOpacityTable, vtkOpenGLVolumeLookupTable);
32   void PrintSelf(ostream& os, vtkIndent indent) override;
33 
34   static vtkOpenGLVolumeGradientOpacityTable* New();
35 
36 protected:
37   vtkOpenGLVolumeGradientOpacityTable() = default;
38 
39   /**
40    * Update the internal texture object using the gradient opacity transfer
41    * function
42    */
43   void InternalUpdate(vtkObject* func, int blendMode, double sampleDistance, double unitDistance,
44     int filterValue) override;
45 
46 private:
47   vtkOpenGLVolumeGradientOpacityTable(const vtkOpenGLVolumeGradientOpacityTable&) = delete;
48   void operator=(const vtkOpenGLVolumeGradientOpacityTable&) = delete;
49 };
50 
51 #endif // __VTK_WRAP__
52 #endif // vtkOpenGLVolumeGradientOpacityTable_h
53