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; |