19 QWidget* parent = nullptr); |
19 QWidget* parent = nullptr); |
20 void clearSelection(); |
20 void clearSelection(); |
21 void addToSelection(ldraw::id_t id); |
21 void addToSelection(ldraw::id_t id); |
22 void setOverpaintCallback(OverpaintCallback fn); |
22 void setOverpaintCallback(OverpaintCallback fn); |
23 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const; |
23 void drawWorldPoint(QPainter* painter, const glm::vec3& worldPoint) const; |
|
24 void drawWorldPolyline(QPainter* painter, const std::vector<glm::vec3>& points); |
24 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points); |
25 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points); |
25 const std::optional<glm::vec3>& getWorldPosition() const; |
26 const std::optional<glm::vec3>& getWorldPosition() const; |
26 void adjustGridToView(); |
27 void adjustGridToView(); |
27 public Q_SLOTS: |
28 public Q_SLOTS: |
28 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); |
29 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); |
40 void mouseMove(Canvas* canvas, QMouseEvent* event); |
41 void mouseMove(Canvas* canvas, QMouseEvent* event); |
41 private: |
42 private: |
42 void setGridMatrix(const glm::mat4 &newMatrix); |
43 void setGridMatrix(const glm::mat4 &newMatrix); |
43 glm::vec3 cameraVector() const; |
44 glm::vec3 cameraVector() const; |
44 bool isGridPerpendicularToScreen(float threshold) const; |
45 bool isGridPerpendicularToScreen(float threshold) const; |
|
46 QVector<QPointF> convertWorldPointsToScreenPoints(const std::vector<glm::vec3>& worldPoints); |
45 std::optional<GridProgram> gridProgram; |
47 std::optional<GridProgram> gridProgram; |
46 std::optional<AxesProgram> axesProgram; |
48 std::optional<AxesProgram> axesProgram; |
47 std::optional<VertexProgram> vertexProgram; |
49 std::optional<VertexProgram> vertexProgram; |
48 std::optional<glm::vec3> worldPosition; |
50 std::optional<glm::vec3> worldPosition; |
49 glm::mat4 gridMatrix; |
51 glm::mat4 gridMatrix; |