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 drawWorldPolyline(QPainter* painter, const std::vector<glm::vec3>& points); |
25 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points); |
25 void drawWorldPolygon(QPainter* painter, const std::vector<glm::vec3>& points); |
|
26 Winding worldPolygonWinding(const std::vector<glm::vec3>& points) const; |
26 const std::optional<glm::vec3>& getWorldPosition() const; |
27 const std::optional<glm::vec3>& getWorldPosition() const; |
27 void adjustGridToView(); |
28 void adjustGridToView(); |
28 public Q_SLOTS: |
29 public Q_SLOTS: |
29 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); |
30 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); |
30 void rebuildVertices(Document *document); |
31 void rebuildVertices(Document *document); |
41 void mouseMove(Canvas* canvas, QMouseEvent* event); |
42 void mouseMove(Canvas* canvas, QMouseEvent* event); |
42 private: |
43 private: |
43 void setGridMatrix(const glm::mat4 &newMatrix); |
44 void setGridMatrix(const glm::mat4 &newMatrix); |
44 glm::vec3 cameraVector() const; |
45 glm::vec3 cameraVector() const; |
45 bool isGridPerpendicularToScreen(float threshold) const; |
46 bool isGridPerpendicularToScreen(float threshold) const; |
46 QVector<QPointF> convertWorldPointsToScreenPoints(const std::vector<glm::vec3>& worldPoints); |
47 QVector<QPointF> convertWorldPointsToScreenPoints(const std::vector<glm::vec3>& worldPoints) const; |
47 Q_SLOT void updateCanvasRenderPreferences(); |
48 Q_SLOT void updateCanvasRenderPreferences(); |
48 std::optional<GridProgram> gridProgram; |
49 std::optional<GridProgram> gridProgram; |
49 std::optional<AxesProgram> axesProgram; |
50 std::optional<AxesProgram> axesProgram; |
50 std::optional<VertexProgram> vertexProgram; |
51 std::optional<VertexProgram> vertexProgram; |
51 std::optional<glm::vec3> worldPosition; |
52 std::optional<glm::vec3> worldPosition; |