src/gl/partrenderer.h

Sun, 19 Jan 2020 14:25:43 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 19 Jan 2020 14:25:43 +0200
changeset 24
1a0faaaceb84
parent 22
6da867fa5429
child 26
3a9e761e4faa
permissions
-rw-r--r--

added license

#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:
	void renderScene();
	Model* const model;
	DocumentManager* const documents;
	QPointF lastMousePosition;
	QQuaternion rotation;
	gl::Compiler* compiler;
	gl::RenderStyle renderStyle = gl::RenderStyle::Normal;
	bool initialized = false;
	void initializeLighting();
};

mercurial