VTK  9.1.0
vtkQWidgetTexture.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkQWidgetTexture.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#ifndef vtkQWidgetTexture_h
16#define vtkQWidgetTexture_h
17
18#include "vtkGUISupportQtModule.h" // For export macro
19#include "vtkTextureObject.h"
20#include <array> // for ivar
21#include <functional> // for ivar
22
23class QGraphicsScene;
24class QWidget;
25
33class VTKGUISUPPORTQT_EXPORT vtkQWidgetTexture : public vtkTextureObject
34{
35public:
38 void PrintSelf(ostream& os, vtkIndent indent) override;
39
41
44 void SetWidget(QWidget* w);
45 QWidget* GetWidget() { return this->Widget; }
47
52 QGraphicsScene* GetScene() { return this->Scene; }
53
58 void Activate() override;
59
64
65protected:
68
69 QGraphicsScene* Scene;
70 QWidget* Widget;
71
72 // method called when the widget needs repainting
73 std::function<void()> RedrawMethod;
74
75 // internal method to setup the scene/framebuffer/etc
77
78 unsigned char* ImageBuffer;
79 std::array<int, 2> ImageBufferDimensions;
80
81private:
82 vtkQWidgetTexture(const vtkQWidgetTexture&) = delete;
83 void operator=(const vtkQWidgetTexture&) = delete;
84};
85
86#endif
a simple class to control print indentation
Definition: vtkIndent.h:113
Allows a QWidget to be used as a texture in VTK with OpenGL.
void Activate() override
Activate and Bind the texture.
void ReleaseGraphicsResources(vtkWindow *win) override
Free resources.
std::array< int, 2 > ImageBufferDimensions
QGraphicsScene * Scene
QWidget * GetWidget()
Set/Get the QWidget that this TextureObject will render/use.
void AllocateFromWidget()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetWidget(QWidget *w)
Set/Get the QWidget that this TextureObject will render/use.
static vtkQWidgetTexture * New()
QGraphicsScene * GetScene()
get the QScene used for rendering, this is where events will be forwarded to.
std::function< void()> RedrawMethod
~vtkQWidgetTexture() override
unsigned char * ImageBuffer
abstracts an OpenGL texture object.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39