src/gl/partrenderer.h

changeset 56
fad4a5dd8dee
parent 55
cb81ecb5fb23
child 57
5c0005f63319
equal deleted inserted replaced
55:cb81ecb5fb23 56:fad4a5dd8dee
21 DocumentManager* documents, 21 DocumentManager* documents,
22 const ldraw::ColorTable& colorTable, 22 const ldraw::ColorTable& colorTable,
23 QWidget* parent = nullptr); 23 QWidget* parent = nullptr);
24 ~PartRenderer() override; 24 ~PartRenderer() override;
25 void setRenderPreferences(const gl::RenderPreferences& newPreferences); 25 void setRenderPreferences(const gl::RenderPreferences& newPreferences);
26 static glm::vec3 viewport(const glm::vec3& point, float width, float height);
26 protected: 27 protected:
27 ldraw::Id pick(const QPoint& where); 28 ldraw::Id pick(const QPoint& where);
28 void initializeGL() override; 29 void initializeGL() override;
29 void resizeGL(int width, int height) override; 30 void resizeGL(int width, int height) override;
30 void paintGL() override; 31 void paintGL() override;
31 void mouseMoveEvent(QMouseEvent* event) override; 32 void mouseMoveEvent(QMouseEvent* event) override;
32 void wheelEvent(QWheelEvent* event) override; 33 void wheelEvent(QWheelEvent* event) override;
34 glm::vec3 viewport(const glm::vec3& point);
33 Model* const model; 35 Model* const model;
34 DocumentManager* const documents; 36 DocumentManager* const documents;
35 const ldraw::ColorTable& colorTable; 37 const ldraw::ColorTable& colorTable;
36 gl::Compiler* const compiler; 38 gl::Compiler* const compiler;
37 ldraw::Id highlighted = ldraw::NULL_ID; 39 ldraw::Id highlighted = ldraw::NULL_ID;
38 std::optional<glm::vec3> cameraToGrid(const QPoint& point); 40 std::optional<glm::vec3> screenToModelCoordinates(const QPoint& point);
39 QPointF worldToCamera(const glm::vec3& point); 41 QPointF modelToScreenCoordinates(const glm::vec3& point);
40 private: 42 private:
41 void setFragmentStyle(gl::FragmentStyle fragStyle); 43 void setFragmentStyle(gl::FragmentStyle fragStyle);
42 void renderAllArrays(); 44 void renderAllArrays();
43 void renderScene(); 45 void renderScene();
44 void updateViewMatrix(); 46 void updateViewMatrix();
46 void setupBackgroundColor(); 48 void setupBackgroundColor();
47 QPointF lastMousePosition; 49 QPointF lastMousePosition;
48 gl::RenderPreferences renderPreferences; 50 gl::RenderPreferences renderPreferences;
49 glm::mat4 projectionMatrix; 51 glm::mat4 projectionMatrix;
50 glm::mat4 viewMatrix; 52 glm::mat4 viewMatrix;
51 glm::mat3 viewportMatrix;
52 glm::quat modelQuaternion; 53 glm::quat modelQuaternion;
53 std::optional<GridProgram> gridProgram; 54 std::optional<GridProgram> gridProgram;
54 static constexpr double MIN_ZOOM = 0.0; 55 static constexpr double MIN_ZOOM = 0.0;
55 static constexpr double MAX_ZOOM = 3.0; 56 static constexpr double MAX_ZOOM = 3.0;
56 double zoom = 1.0; 57 double zoom = 1.0;

mercurial