diff -r 0f221121849b -r 4585d8d7a7ec src/gl/partrenderer.h --- 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 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; static constexpr double MIN_ZOOM = 0.0; static constexpr double MAX_ZOOM = 3.0; double zoom = 1.0;