PeriDyno 1.2.1
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 void setDefaultAnimationOption(bool op);
68
69 protected:
70 void initializeGL() override;
71 void paintGL() override;
72 void resizeGL(int w, int h) override;
73
74 void mousePressEvent(QMouseEvent *event) override;
75 void mouseReleaseEvent(QMouseEvent *event) override;
76 void mouseMoveEvent(QMouseEvent *event) override;
77 void wheelEvent(QWheelEvent *event) override;
78
79 void keyPressEvent(QKeyEvent* event) override;
80 void keyReleaseEvent(QKeyEvent* event) override;
81
82 void onSelected(const Selection& s) override;
83
84 void onSaveScreen(const std::string& filename) override;
85
86 public slots:
88 void updateGraphicsContext(Node* node);
89
90 void updateOneFrame(int frame);
91
92 signals:
93 void nodeSelected(std::shared_ptr<Node> node);
94
95
96 private:
97
99 int mCursorX = -1;
100 int mCursorY = -1;
101 int mtempCursorX = -1;
102 // Qt
103 QTimer timer;
104
105 QOpenGLFramebufferObject* mFBO = nullptr;
106
107 //
109 };
110
111}
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)
void setDefaultAnimationOption(bool op)
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