src/ui/canvas.h

changeset 118
8e1c9f18ae15
parent 112
5760cbb32bc0
child 121
000781318c36
equal deleted inserted replaced
117:121a40d5e34c 118:8e1c9f18ae15
3 #include <QBrush> 3 #include <QBrush>
4 #include <QPen> 4 #include <QPen>
5 #include "gl/partrenderer.h" 5 #include "gl/partrenderer.h"
6 #include "gl/gridprogram.h" 6 #include "gl/gridprogram.h"
7 #include "gl/axesprogram.h" 7 #include "gl/axesprogram.h"
8 #include "gl/vertexprogram.h"
8 9
9 class Canvas : public PartRenderer 10 class Canvas : public PartRenderer
10 { 11 {
11 Q_OBJECT 12 Q_OBJECT
12 public: 13 public:
22 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const; 23 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const;
23 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points); 24 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points);
24 const std::optional<glm::vec3>& getWorldPosition() const; 25 const std::optional<glm::vec3>& getWorldPosition() const;
25 public Q_SLOTS: 26 public Q_SLOTS:
26 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); 27 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds);
28 void rebuildVertices(Document *document);
27 protected: 29 protected:
28 void mouseMoveEvent(QMouseEvent* event) override; 30 void mouseMoveEvent(QMouseEvent* event) override;
29 void mousePressEvent(QMouseEvent* event) override; 31 void mousePressEvent(QMouseEvent* event) override;
30 void mouseReleaseEvent(QMouseEvent* event) override; 32 void mouseReleaseEvent(QMouseEvent* event) override;
31 void initializeGL() override; 33 void initializeGL() override;
39 void updateGridMatrix(); 41 void updateGridMatrix();
40 glm::vec3 cameraVector() const; 42 glm::vec3 cameraVector() const;
41 bool isGridPerpendicularToScreen(float threshold) const; 43 bool isGridPerpendicularToScreen(float threshold) const;
42 std::optional<GridProgram> gridProgram; 44 std::optional<GridProgram> gridProgram;
43 std::optional<AxesProgram> axesProgram; 45 std::optional<AxesProgram> axesProgram;
46 std::optional<VertexProgram> vertexProgram;
44 std::optional<glm::vec3> worldPosition; 47 std::optional<glm::vec3> worldPosition;
45 glm::mat4 gridMatrix; 48 glm::mat4 gridMatrix;
46 geom::Plane gridPlane; 49 geom::Plane gridPlane;
47 int totalMouseMove = 0; 50 int totalMouseMove = 0;
48 QSet<ldraw::id_t> selection; 51 QSet<ldraw::id_t> selection;

mercurial