VTK  9.2.6
QVTKOpenGLStereoWidget.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: QVTKOpenGLStereoWidget.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 QVTKOpenGLStereoWidget_h
16#define QVTKOpenGLStereoWidget_h
17
18#include "vtkGUISupportQtModule.h" // For export macro
19#include <QWidget>
20
21#include "QVTKOpenGLWindow.h" // needed for ivar
22#include <QPointer> // needed for ivar
23
24// Forward Qt class declarations
25class QSurfaceFormat;
26class QOpenGLContext;
27
28// class QVTKInteractor;
32class vtkRenderWindow;
34
64class VTKGUISUPPORTQT_EXPORT QVTKOpenGLStereoWidget : public QWidget
65{
66 Q_OBJECT
67 typedef QWidget Superclass;
68
69public:
70 QVTKOpenGLStereoWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
72 QOpenGLContext* shareContext, QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
74 Qt::WindowFlags f = Qt::WindowFlags());
75 QVTKOpenGLStereoWidget(vtkGenericOpenGLRenderWindow* w, QOpenGLContext* shareContext,
76 QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
78
80
84 {
85 this->VTKOpenGLWindow->setRenderWindow(win);
86 }
87 void setRenderWindow(vtkRenderWindow* win) { this->VTKOpenGLWindow->setRenderWindow(win); }
89
93 vtkRenderWindow* renderWindow() const { return this->VTKOpenGLWindow->renderWindow(); }
94
98 QVTKInteractor* interactor() const { return this->VTKOpenGLWindow->interactor(); }
99
103 static QSurfaceFormat defaultFormat(bool stereo_capable = false)
104 {
105 return QVTKOpenGLWindow::defaultFormat(stereo_capable);
106 }
107
111 void setEnableHiDPI(bool enable) { this->VTKOpenGLWindow->setEnableHiDPI(enable); }
112 bool enableHiDPI() const { return this->VTKOpenGLWindow->enableHiDPI(); }
113
115
119 void setUnscaledDPI(int dpi) { this->VTKOpenGLWindow->setUnscaledDPI(dpi); }
120 int unscaledDPI() const { return this->VTKOpenGLWindow->unscaledDPI(); }
122
124
138 {
139 this->VTKOpenGLWindow->setCustomDevicePixelRatio(cdpr);
140 };
141 double customDevicePixelRatio() const { return this->VTKOpenGLWindow->customDevicePixelRatio(); };
143 {
144 return this->VTKOpenGLWindow->effectiveDevicePixelRatio();
145 };
146
147
149
152 void setDefaultCursor(const QCursor& cursor) { this->VTKOpenGLWindow->setDefaultCursor(cursor); }
153 const QCursor& defaultCursor() const { return this->VTKOpenGLWindow->defaultCursor(); }
155
160 bool isValid() { return this->VTKOpenGLWindow->isValid(); }
161
167
171 QVTKOpenGLWindow* embeddedOpenGLWindow() const { return this->VTKOpenGLWindow; }
172
182 void setFormat(const QSurfaceFormat& fmt) { this->VTKOpenGLWindow->setFormat(fmt); }
183
187 QSurfaceFormat format() const { return this->VTKOpenGLWindow->format(); }
188
189protected:
190 void resizeEvent(QResizeEvent* evt) override;
191 void paintEvent(QPaintEvent* evt) override;
192
193private:
194 QPointer<QVTKOpenGLWindow> VTKOpenGLWindow;
195};
196
197#endif
an interactor for QVTKOpenGLNativeWidget (and QVTKWiget).
~QVTKOpenGLStereoWidget() override
void setCustomDevicePixelRatio(double cdpr)
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
vtkRenderWindow * renderWindow() const
Returns the render window that is being shown in this widget.
void setRenderWindow(vtkRenderWindow *win)
Set a render window to use.
void setEnableHiDPI(bool enable)
Enable or disable support for HiDPI displays.
void setDefaultCursor(const QCursor &cursor)
Set/get the default cursor to use for this widget.
const QCursor & defaultCursor() const
Set/get the default cursor to use for this widget.
void paintEvent(QPaintEvent *evt) override
QImage grabFramebuffer()
Expose internal QVTKOpenGLWindow::grabFramebuffer().
double effectiveDevicePixelRatio() const
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
QVTKInteractor * interactor() const
Get the QVTKInteractor that was either created by default or set by the user.
QVTKOpenGLWindow * embeddedOpenGLWindow() const
Returns the embedded QVTKOpenGLWindow.
void setUnscaledDPI(int dpi)
Set/Get unscaled DPI value.
QSurfaceFormat format() const
Returns the context and surface format used by this widget and its toplevel window.
void resizeEvent(QResizeEvent *evt) override
void setFormat(const QSurfaceFormat &fmt)
Sets the requested surface format.
double customDevicePixelRatio() const
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
static QSurfaceFormat defaultFormat(bool stereo_capable=false)
Returns a QSurfaceFormat suitable for surfaces that intend to be used for VTK rendering.
QVTKOpenGLStereoWidget(vtkGenericOpenGLRenderWindow *w, QOpenGLContext *shareContext, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
QVTKOpenGLStereoWidget(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
QVTKOpenGLStereoWidget(vtkGenericOpenGLRenderWindow *w, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
QVTKOpenGLStereoWidget(QOpenGLContext *shareContext, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
bool isValid()
Returns true if the internal QOpenGLWindow's is valid, i.e.
void setRenderWindow(vtkGenericOpenGLRenderWindow *win)
Set a render window to use.
int unscaledDPI() const
Set/Get unscaled DPI value.
display a vtkGenericOpenGLRenderWindow in a Qt QOpenGLWindow.
static QSurfaceFormat defaultFormat(bool stereo_capable=false)
Returns a QSurfaceFormat suitable for surfaces that intend to be used for VTK rendering.
platform independent render window
platform-independent render window interaction including picking and frame rate control.
create a window for renderers to draw into