diff Samples/Qt/QStoneOpenGlWidget.h @ 879:12b591d5d63c am-dev

some Qt integration (wip)
author Alain Mazy <alain@mazy.be>
date Fri, 05 Jul 2019 14:52:43 +0200
parents 23701fbf228e
children a8cd3755db21
line wrap: on
line diff
--- a/Samples/Qt/QStoneOpenGlWidget.h	Wed Jul 03 10:26:51 2019 +0200
+++ b/Samples/Qt/QStoneOpenGlWidget.h	Fri Jul 05 14:52:43 2019 +0200
@@ -6,40 +6,55 @@
 #include <boost/shared_ptr.hpp>
 #include "../../Framework/OpenGL/IOpenGLContext.h"
 #include "../../Framework/Scene2D/OpenGLCompositor.h"
-
+#include "Scene2DInteractor.h"
 
-class QStoneOpenGlWidget : public QOpenGLWidget, public OrthancStone::OpenGL::IOpenGLContext
+namespace OrthancStone
 {
-  boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor_;
-
-public:
-  QStoneOpenGlWidget(QWidget *parent) : QOpenGLWidget(parent) { }
+  class QStoneOpenGlWidget : public QOpenGLWidget, public OrthancStone::OpenGL::IOpenGLContext
+  {
+    boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor_;
+    boost::shared_ptr<Scene2DInteractor> sceneInteractor_;
 
-protected:
-  void initializeGL() override;
+  public:
+    QStoneOpenGlWidget(QWidget *parent) :
+      QOpenGLWidget(parent)
+    {
+    }
+
+  protected:
 
-  void resizeGL(int w, int h) override;
+    //**** QWidget overrides
+    void initializeGL() override;
+    void resizeGL(int w, int h) override;
+    void paintGL() override;
 
-  void paintGL() override;
+    void mousePressEvent(QMouseEvent* event) override;
 
-  virtual void MakeCurrent() override;
+    //**** IOpenGLContext overrides
 
-  virtual void SwapBuffer() override {}
+    virtual void MakeCurrent() override;
+    virtual void SwapBuffer() override {}
 
-  virtual unsigned int GetCanvasWidth() const override
-  {
-   return this->width();
-  }
+    virtual unsigned int GetCanvasWidth() const override
+    {
+      return this->width();
+    }
+
+    virtual unsigned int GetCanvasHeight() const override
+    {
+      return this->height();
+    }
 
-  virtual unsigned int GetCanvasHeight() const override
-  {
-    return this->height();
-  }
+  public:
+    void SetInteractor(boost::shared_ptr<Scene2DInteractor> sceneInteractor)
+    {
+      sceneInteractor_ = sceneInteractor;
+    }
 
-public:
-  void SetCompositor(boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor)
-  {
-    compositor_ = compositor;
-  }
+    void SetCompositor(boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor)
+    {
+      compositor_ = compositor;
+    }
 
-};
+  };
+}