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
25 class QSurfaceFormat;
26 class QOpenGLContext;
27 
28 // class QVTKInteractor;
30 class QVTKOpenGLWindow;
32 class vtkRenderWindow;
34 
64 class VTKGUISUPPORTQT_EXPORT QVTKOpenGLStereoWidget : public QWidget
65 {
66  Q_OBJECT
67  typedef QWidget Superclass;
68 
69 public:
70  QVTKOpenGLStereoWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
72  QOpenGLContext* shareContext, QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
73  QVTKOpenGLStereoWidget(vtkGenericOpenGLRenderWindow* w, QWidget* parent = nullptr,
74  Qt::WindowFlags f = Qt::WindowFlags());
75  QVTKOpenGLStereoWidget(vtkGenericOpenGLRenderWindow* w, QOpenGLContext* shareContext,
76  QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
77  ~QVTKOpenGLStereoWidget() override;
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 
137  void setCustomDevicePixelRatio(double cdpr)
138  {
139  this->VTKOpenGLWindow->setCustomDevicePixelRatio(cdpr);
140  };
141  double customDevicePixelRatio() const { return this->VTKOpenGLWindow->customDevicePixelRatio(); };
143  {
144  return this->VTKOpenGLWindow->effectiveDevicePixelRatio();
145  };
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 
166  QImage grabFramebuffer();
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 
189 protected:
190  void resizeEvent(QResizeEvent* evt) override;
191  void paintEvent(QPaintEvent* evt) override;
192 
193 private:
194  QPointer<QVTKOpenGLWindow> VTKOpenGLWindow;
195 };
196 
197 #endif
void setRenderWindow(vtkGenericOpenGLRenderWindow *win)
Set a render window to use.
const QCursor & defaultCursor() const
Set/get the default cursor to use for this widget.
void setFormat(const QSurfaceFormat &fmt)
Sets the requested surface format.
QVTKInteractor * interactor() const
Get the QVTKInteractor that was either created by default or set by the user.
void setEnableHiDPI(bool enable)
Enable or disable support for HiDPI displays.
vtkRenderWindow * renderWindow() const
Returns the render window that is being shown in this widget.
an interactor for QVTKOpenGLNativeWidget (and QVTKWiget).
platform-independent render window interaction including picking and frame rate control.
static QSurfaceFormat defaultFormat(bool stereo_capable=false)
Returns a QSurfaceFormat suitable for surfaces that intend to be used for VTK rendering.
QSurfaceFormat format() const
Returns the context and surface format used by this widget and its toplevel window.
platform independent render window
int unscaledDPI() const
Set/Get unscaled DPI value.
display a vtkGenericOpenGLRenderWindow in a Qt QOpenGLWindow.
QWidget for displaying a vtkRenderWindow in a Qt Application.
void setDefaultCursor(const QCursor &cursor)
Set/get the default cursor to use for this widget.
double customDevicePixelRatio() const
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
double effectiveDevicePixelRatio() const
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
void setRenderWindow(vtkRenderWindow *win)
Set a render window to use.
create a window for renderers to draw into
QVTKOpenGLWindow * embeddedOpenGLWindow() const
Returns the embedded QVTKOpenGLWindow.
static QSurfaceFormat defaultFormat(bool stereo_capable=false)
Returns a QSurfaceFormat suitable for surfaces that intend to be used for VTK rendering.
void setUnscaledDPI(int dpi)
Set/Get unscaled DPI value.
void setCustomDevicePixelRatio(double cdpr)
Set/Get a custom device pixel ratio to use to map Qt sizes to VTK (or OpenGL) sizes.
bool isValid()
Returns true if the internal QOpenGLWindow's is valid, i.e.