annotate Samples/Qt/QStoneOpenGlWidget.cpp @ 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
849
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
1 #include "../../Framework/OpenGL/OpenGLIncludes.h"
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
2 #include "QStoneOpenGlWidget.h"
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
3
879
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
4 #include <QMouseEvent>
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
5
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
6 using namespace OrthancStone;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
7
849
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
8 void QStoneOpenGlWidget::initializeGL()
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
9 {
863
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
10 glewInit();
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
11 }
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
12
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
13 void QStoneOpenGlWidget::MakeCurrent()
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
14 {
23701fbf228e first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents: 849
diff changeset
15 this->makeCurrent();
849
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
16 }
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
17
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
18 void QStoneOpenGlWidget::resizeGL(int w, int h)
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
19 {
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
20
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
21 }
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
22
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
23 void QStoneOpenGlWidget::paintGL()
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
24 {
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
25 if (compositor_)
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
26 {
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
27 compositor_->Refresh();
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
28 }
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
29 doneCurrent();
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
30 }
8a8cf2991538 Qt sample (work in progress)
Alain Mazy <alain@mazy.be>
parents:
diff changeset
31
879
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
32 void ConvertFromPlatform(
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
33 OrthancStone::GuiAdapterMouseEvent& dest,
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
34 const QMouseEvent& qtEvent)
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
35 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
36 dest.targetX = qtEvent.x();
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
37 dest.targetY = qtEvent.y();
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
38
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
39 switch (qtEvent.button())
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
40 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
41 case Qt::LeftButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_LEFT; break;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
42 case Qt::MiddleButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_MIDDLE; break;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
43 case Qt::RightButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_RIGHT; break;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
44 default:
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
45 dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_LEFT;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
46 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
47
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
48 if (qtEvent.modifiers().testFlag(Qt::ShiftModifier))
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
49 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
50 dest.shiftKey = true;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
51 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
52 if (qtEvent.modifiers().testFlag(Qt::ControlModifier))
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
53 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
54 dest.ctrlKey = true;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
55 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
56 if (qtEvent.modifiers().testFlag(Qt::AltModifier))
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
57 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
58 dest.altKey = true;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
59 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
60
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
61 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
62
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
63
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
64
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
65 void QStoneOpenGlWidget::mousePressEvent(QMouseEvent* qtEvent)
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
66 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
67 OrthancStone::GuiAdapterMouseEvent event;
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
68 ConvertFromPlatform(event, *qtEvent);
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
69
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
70 if (sceneInteractor_.get() != NULL)
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
71 {
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
72 sceneInteractor_->OnMouseEvent(event);
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
73 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
74
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
75
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
76 // convert
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
77 //TODO event->
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
78
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
79 // sceneInteractor_->OnMouseEvent(event);
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
80 }
12b591d5d63c some Qt integration (wip)
Alain Mazy <alain@mazy.be>
parents: 863
diff changeset
81