Wed, 01 Jan 2020 17:45:56 +0200
things
#pragma once #include <QOpenGLWidget> #include <QOpenGLFunctions> #include <QQuaternion> #include "main.h" #include "gl/common.h" #include "gl/compiler.h" class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions { Q_OBJECT public: PartRenderer(Model* model, DocumentManager* documents, QWidget* parent = nullptr); protected: void initializeGL() override; void resizeGL(int width, int height) override; void paintGL() override; void mouseMoveEvent(QMouseEvent* event) override; void setCompiler(gl::Compiler* compiler); private slots: void setRenderStyle(const gl::RenderStyle newStyle); private: Model* const model; DocumentManager* const documents; QPointF lastMousePosition; bool initialized = false; gl::RenderStyle renderStyle = gl::RenderStyle::Normal; QQuaternion rotation; void initializeLighting(); gl::Compiler* compiler; };