PeriDyno 1.0.0
Loading...
Searching...
No Matches
POpenGLWidget.h
Go to the documentation of this file.
1
19#pragma once
20//Qt
21#include <QWidget>
22#include <QOpenGLExtraFunctions>
23#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
24 #include <QtOpenGLWidgets/QtOpenGLWidgets>
25#else
26 #include <QOpenGLWidget>
27#endif
28
29#include <QOpenGLFramebufferObject>
30
31#include <QTimer>
32
33//#include <GL/glu.h>
34#include <RenderEngine.h>
35#include <RenderWindow.h>
36#include <ImWindow.h>
37
38namespace dyno
39{
40 class Node;
41
47
54
56 : public QOpenGLWidget
57 , private QOpenGLExtraFunctions
58 , public RenderWindow
59 {
60 Q_OBJECT
61 public:
62 POpenGLWidget(QWidget* parent = nullptr);
64
65 void mainLoop() override {};
66
67 protected:
68 void initializeGL() override;
69 void paintGL() override;
70 void resizeGL(int w, int h) override;
71
72 void mousePressEvent(QMouseEvent *event) override;
73 void mouseReleaseEvent(QMouseEvent *event) override;
74 void mouseMoveEvent(QMouseEvent *event) override;
75 void wheelEvent(QWheelEvent *event) override;
76
77 void keyPressEvent(QKeyEvent* event) override;
78 void keyReleaseEvent(QKeyEvent* event) override;
79
80 void onSelected(const Selection& s) override;
81
82 void onSaveScreen(const std::string& filename) override;
83
84 public slots:
86 void updateGraphicsContext(Node* node);
87
88 void updateOneFrame(int frame);
89
90 signals:
91 void nodeSelected(std::shared_ptr<Node> node);
92
93
94 private:
95
97 int mCursorX = -1;
98 int mCursorY = -1;
99 int mtempCursorX = -1;
100 // Qt
101 QTimer timer;
102
103 QOpenGLFramebufferObject* mFBO = nullptr;
104
105 //
107 };
108
109}
void nodeSelected(std::shared_ptr< Node > node)
void onSaveScreen(const std::string &filename) override
void updateGraphicsContext(Node *node)
void updateOneFrame(int frame)
void mouseReleaseEvent(QMouseEvent *event) override
void keyReleaseEvent(QKeyEvent *event) override
void initializeGL() override
void mousePressEvent(QMouseEvent *event) override
void onSelected(const Selection &s) override
void mainLoop() override
QOpenGLFramebufferObject * mFBO
void mouseMoveEvent(QMouseEvent *event) override
void keyPressEvent(QKeyEvent *event) override
void resizeGL(int w, int h) override
void paintGL() override
POpenGLWidget(QWidget *parent=nullptr)
QButtonState mButtonState
void wheelEvent(QWheelEvent *event) override
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
@ QBUTTON_DOWN
@ QBUTTON_UP
@ QBUTTON_RIGHT
@ QBUTTON_UNKNOWN
@ QBUTTON_LETF