src/gl/partrenderer.h

changeset 61
4585d8d7a7ec
parent 58
b7841cd31fb7
child 66
77c819262b7a
--- a/src/gl/partrenderer.h	Thu Feb 27 14:38:58 2020 +0200
+++ b/src/gl/partrenderer.h	Thu Feb 27 22:46:39 2020 +0200
@@ -10,7 +10,6 @@
 #include "main.h"
 #include "gl/common.h"
 #include "gl/compiler.h"
-#include "gl/gridprogram.h"
 
 class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions
 {
@@ -23,8 +22,6 @@
 		QWidget* parent = nullptr);
 	~PartRenderer() override;
 	void setRenderPreferences(const gl::RenderPreferences& newPreferences);
-	static glm::vec3 viewport(const glm::vec3& point, float width, float height);
-	static glm::vec3 antiviewport(const glm::vec3& point, float width, float height);
 protected:
 	ldraw::Id pick(const QPoint& where);
 	void initializeGL() override;
@@ -32,7 +29,6 @@
 	void paintGL() override;
 	void mouseMoveEvent(QMouseEvent* event) override;
 	void wheelEvent(QWheelEvent* event) override;
-	glm::vec3 viewport(const glm::vec3& point);
 	Model* const model;
 	DocumentManager* const documents;
 	const ldraw::ColorTable& colorTable;
@@ -41,6 +37,18 @@
 	std::optional<glm::vec3> screenToModelCoordinates(const QPoint& point, const geom::Plane& plane);
 	QPointF modelToScreenCoordinates(const glm::vec3& point);
 	glm::vec3 unproject(const glm::vec3& win);
+	glm::mat4 projectionMatrix;
+	glm::mat4 viewMatrix;
+	glm::mat4 modelMatrix;
+	glm::vec4 viewportVector;
+	glm::quat modelQuaternion;
+	QPoint lastMousePosition;
+	gl::RenderPreferences renderPreferences;
+signals:
+	void projectionMatrixChanged();
+	void modelMatrixChanged();
+	void viewMatrixChanged();
+	void renderPreferencesChanged();
 private:
 	void setFragmentStyle(gl::FragmentStyle fragStyle);
 	void renderAllArrays();
@@ -48,13 +56,6 @@
 	void updateViewMatrix();
 	void updateModelMatrix();
 	void setupBackgroundColor();
-	QPointF lastMousePosition;
-	gl::RenderPreferences renderPreferences;
-	glm::mat4 projectionMatrix;
-	glm::mat4 viewMatrix;
-	glm::vec4 viewportVector;
-	glm::quat modelQuaternion;
-	std::optional<GridProgram> gridProgram;
 	static constexpr double MIN_ZOOM = 0.0;
 	static constexpr double MAX_ZOOM = 3.0;
 	double zoom = 1.0;

mercurial