#ifndef MAINGLWIDGET_H #define MAINGLWIDGET_H #include "objects/part.h" #include "qevent.h" #include #include #include class HandleFace; class MainGLWidget : public QOpenGLWidget { public: MainGLWidget(QWidget *parent = nullptr); void updateCycle(); std::shared_ptr lastPart; protected: void initializeGL() override; void resizeGL(int w, int h) override; void paintGL() override; void handleCameraRotate(QMouseEvent* evt); void handleObjectDrag(QMouseEvent* evt); void handleHandleDrag(QMouseEvent* evt); void handleCursorChange(QMouseEvent* evt); std::optional raycastHandle(glm::vec3 pointDir); void mouseMoveEvent(QMouseEvent* evt) override; void mousePressEvent(QMouseEvent* evt) override; void mouseReleaseEvent(QMouseEvent* evt) override; void keyPressEvent(QKeyEvent* evt) override; void keyReleaseEvent(QKeyEvent* evt) override; }; #endif // MAINGLWIDGET_H