src/ui/canvas.h

changeset 104
cd4df75924b7
parent 73
97df974b5ed5
child 105
6ca6e8c647d4
equal deleted inserted replaced
103:94719518e310 104:cd4df75924b7
5 5
6 class Canvas : public PartRenderer 6 class Canvas : public PartRenderer
7 { 7 {
8 Q_OBJECT 8 Q_OBJECT
9 public: 9 public:
10 struct MouseClickInfo;
10 Canvas( 11 Canvas(
11 Model* model, 12 Model* model,
12 DocumentManager* documents, 13 DocumentManager* documents,
13 const ldraw::ColorTable& colorTable, 14 const ldraw::ColorTable& colorTable,
14 QWidget* parent = nullptr); 15 QWidget* parent = nullptr);
21 void initializeGL() override; 22 void initializeGL() override;
22 void paintGL() override; 23 void paintGL() override;
23 signals: 24 signals:
24 void newStatusText(const QString& newStatusText); 25 void newStatusText(const QString& newStatusText);
25 void selectionChanged(const QSet<ldraw::id_t>& newSelection); 26 void selectionChanged(const QSet<ldraw::id_t>& newSelection);
27 void mouseClick(const MouseClickInfo& info);
26 private: 28 private:
27 void updateGridMatrix(); 29 void updateGridMatrix();
28 glm::vec3 cameraVector() const; 30 glm::vec3 cameraVector() const;
29 bool isGridPerpendicularToScreen(float threshold) const; 31 bool isGridPerpendicularToScreen(float threshold) const;
30 std::optional<GridProgram> gridProgram; 32 std::optional<GridProgram> gridProgram;
33 glm::mat4 gridMatrix; 35 glm::mat4 gridMatrix;
34 geom::Plane gridPlane; 36 geom::Plane gridPlane;
35 int totalMouseMove = 0; 37 int totalMouseMove = 0;
36 QSet<ldraw::id_t> selection; 38 QSet<ldraw::id_t> selection;
37 }; 39 };
40
41 struct Canvas::MouseClickInfo
42 {
43 bool click;
44 };

mercurial