// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-License-Identifier: BSD-3-Clause #ifndef vtkOpenGLVolumeGradientOpacityTable_h #define vtkOpenGLVolumeGradientOpacityTable_h #include "vtkOpenGLVolumeLookupTable.h" #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro // Forward declarations VTK_ABI_NAMESPACE_BEGIN class vtkOpenGLRenderWindow; //---------------------------------------------------------------------------- class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkOpenGLVolumeGradientOpacityTable : public vtkOpenGLVolumeLookupTable { public: vtkTypeMacro(vtkOpenGLVolumeGradientOpacityTable, vtkOpenGLVolumeLookupTable); void PrintSelf(ostream& os, vtkIndent indent) override; static vtkOpenGLVolumeGradientOpacityTable* New(); protected: vtkOpenGLVolumeGradientOpacityTable() = default; /** * Update the internal texture object using the gradient opacity transfer * function */ void InternalUpdate(vtkObject* func, int blendMode, double sampleDistance, double unitDistance, int filterValue) override; private: vtkOpenGLVolumeGradientOpacityTable(const vtkOpenGLVolumeGradientOpacityTable&) = delete; void operator=(const vtkOpenGLVolumeGradientOpacityTable&) = delete; }; VTK_ABI_NAMESPACE_END #endif // vtkOpenGLVolumeGradientOpacityTable_h