src/ui/canvas.h

changeset 188
64ea7282611e
parent 187
30204975694a
child 191
d355d4c52d51
equal deleted inserted replaced
187:30204975694a 188:64ea7282611e
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 Winding worldPolygonWinding(const std::vector<glm::vec3>& points) const;
27 const std::optional<glm::vec3>& getWorldPosition() const; 27 const std::optional<glm::vec3>& getWorldPosition() const;
28 void adjustGridToView(); 28 void adjustGridToView();
29 const QSet<ldraw::id_t> selectedObjects() const; 29 const QSet<ldraw::id_t> selectedObjects() const;
30 const glm::mat4& getGridMatrix() const; 30 const glm::mat4& getGridMatrix() const;
31 public Q_SLOTS: 31 public Q_SLOTS:
32 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds); 32 void handleSelectionChange(const QSet<ldraw::id_t>& selectedIds, const QSet<ldraw::id_t>& deselectedIds);
33 void rebuildVertices(Document *document); 33 void rebuildVertices(Document *document);
34 void setGridMatrix(const glm::mat4 &newMatrix);
34 protected: 35 protected:
35 void mouseMoveEvent(QMouseEvent* event) override; 36 void mouseMoveEvent(QMouseEvent* event) override;
36 void mousePressEvent(QMouseEvent* event) override; 37 void mousePressEvent(QMouseEvent* event) override;
37 void mouseReleaseEvent(QMouseEvent* event) override; 38 void mouseReleaseEvent(QMouseEvent* event) override;
38 void initializeGL() override; 39 void initializeGL() override;
41 void newStatusText(const QString& newStatusText); 42 void newStatusText(const QString& newStatusText);
42 void selectionChanged(const QSet<ldraw::id_t>& newSelection); 43 void selectionChanged(const QSet<ldraw::id_t>& newSelection);
43 void mouseClick(Canvas* canvas, QMouseEvent* event); 44 void mouseClick(Canvas* canvas, QMouseEvent* event);
44 void mouseMove(Canvas* canvas, QMouseEvent* event); 45 void mouseMove(Canvas* canvas, QMouseEvent* event);
45 private: 46 private:
46 void setGridMatrix(const glm::mat4 &newMatrix);
47 glm::vec3 cameraVector() const; 47 glm::vec3 cameraVector() const;
48 bool isGridPerpendicularToScreen(float threshold) const; 48 bool isGridPerpendicularToScreen(float threshold) const;
49 QVector<QPointF> convertWorldPointsToScreenPoints(const std::vector<glm::vec3>& worldPoints) const; 49 QVector<QPointF> convertWorldPointsToScreenPoints(const std::vector<glm::vec3>& worldPoints) const;
50 Q_SLOT void updateCanvasRenderPreferences(); 50 Q_SLOT void updateCanvasRenderPreferences();
51 void renderAxesLabels(QPainter& painter); 51 void renderAxesLabels(QPainter& painter);

mercurial