diff -r cb81ecb5fb23 -r fad4a5dd8dee src/gl/partrenderer.h --- a/src/gl/partrenderer.h Wed Feb 26 02:21:07 2020 +0200 +++ b/src/gl/partrenderer.h Wed Feb 26 22:26:05 2020 +0200 @@ -23,6 +23,7 @@ QWidget* parent = nullptr); ~PartRenderer() override; void setRenderPreferences(const gl::RenderPreferences& newPreferences); + static glm::vec3 viewport(const glm::vec3& point, float width, float height); protected: ldraw::Id pick(const QPoint& where); void initializeGL() override; @@ -30,13 +31,14 @@ 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; gl::Compiler* const compiler; ldraw::Id highlighted = ldraw::NULL_ID; - std::optional cameraToGrid(const QPoint& point); - QPointF worldToCamera(const glm::vec3& point); + std::optional screenToModelCoordinates(const QPoint& point); + QPointF modelToScreenCoordinates(const glm::vec3& point); private: void setFragmentStyle(gl::FragmentStyle fragStyle); void renderAllArrays(); @@ -48,7 +50,6 @@ gl::RenderPreferences renderPreferences; glm::mat4 projectionMatrix; glm::mat4 viewMatrix; - glm::mat3 viewportMatrix; glm::quat modelQuaternion; std::optional gridProgram; static constexpr double MIN_ZOOM = 0.0;