src/editmodes/abstractEditMode.h

changeset 1217
314e12e23c3a
parent 1006
a6b462051ae0
child 1222
34def2630300
equal deleted inserted replaced
1216:12f9ea615cbc 1217:314e12e23c3a
46 Qt::KeyboardModifiers keymods; 46 Qt::KeyboardModifiers keymods;
47 bool mouseMoved; 47 bool mouseMoved;
48 Qt::MouseButtons releasedButtons; 48 Qt::MouseButtons releasedButtons;
49 }; 49 };
50 50
51 AbstractEditMode (GLRenderer* renderer); 51 AbstractEditMode(GLRenderer* renderer);
52 virtual ~AbstractEditMode(); 52 virtual ~AbstractEditMode();
53 53
54 virtual bool allowFreeCamera() const = 0; 54 virtual bool allowFreeCamera() const = 0;
55 virtual void render (QPainter&) const {} 55 virtual void render(QPainter&) const {}
56 GLRenderer* renderer() const; 56 GLRenderer* renderer() const;
57 virtual EditModeType type() const = 0; 57 virtual EditModeType type() const = 0;
58 virtual bool mousePressed (QMouseEvent*) { return false; } 58 virtual bool mousePressed(QMouseEvent*) { return false; }
59 virtual bool mouseReleased (MouseEventData const&) { return false; } 59 virtual bool mouseReleased(MouseEventData const&) { return false; }
60 virtual bool mouseDoubleClicked (QMouseEvent*) { return false; } 60 virtual bool mouseDoubleClicked(QMouseEvent*) { return false; }
61 virtual bool mouseMoved (QMouseEvent*) { return false; } 61 virtual bool mouseMoved(QMouseEvent*) { return false; }
62 virtual bool keyReleased (QKeyEvent*) { return false; } 62 virtual bool keyReleased(QKeyEvent*) { return false; }
63 63
64 static AbstractEditMode* createByType (GLRenderer* renderer, EditModeType type); 64 static AbstractEditMode* createByType(GLRenderer* renderer, EditModeType type);
65 65
66 private: 66 private:
67 GLRenderer* m_renderer; 67 GLRenderer* m_renderer;
68 }; 68 };
69 69
70 // 70 //
71 // Base class for draw-like edit modes 71 // Base class for draw-like edit modes
72 // 72 //
73 class AbstractDrawMode : public AbstractEditMode 73 class AbstractDrawMode : public AbstractEditMode
74 { 74 {
75 DEFINE_CLASS (AbstractDrawMode, AbstractEditMode) 75 DEFINE_CLASS(AbstractDrawMode, AbstractEditMode)
76 76
77 protected: 77 protected:
78 QList<Vertex> m_drawedVerts; 78 QList<Vertex> m_drawedVerts;
79 QBrush m_polybrush; 79 QBrush m_polybrush;
80 80
81 public: 81 public:
82 AbstractDrawMode (GLRenderer* renderer); 82 AbstractDrawMode(GLRenderer* renderer);
83 83
84 void addDrawnVertex (const Vertex& pos); 84 void addDrawnVertex(const Vertex& pos);
85 virtual bool allowFreeCamera() const override final { return false; } 85 virtual bool allowFreeCamera() const override final { return false; }
86 virtual void endDraw() {} 86 virtual void endDraw() {}
87 void drawLength (QPainter& painter, 87 void drawLength(QPainter& painter,
88 const Vertex& v0, const Vertex& v1, 88 const Vertex& v0, const Vertex& v1,
89 const QPointF& v0p, const QPointF& v1p) const; 89 const QPointF& v0p, const QPointF& v1p) const;
90 void finishDraw (const LDObjectList& objs); 90 void finishDraw(const LDObjectList& objs);
91 Vertex getCursorVertex() const; 91 Vertex getCursorVertex() const;
92 bool keyReleased (QKeyEvent* ev) override; 92 bool keyReleased(QKeyEvent* ev) override;
93 virtual int maxVertices() const { return 0; } 93 virtual int maxVertices() const { return 0; }
94 bool mouseReleased (const AbstractEditMode::MouseEventData& data) override; 94 bool mouseReleased(const AbstractEditMode::MouseEventData& data) override;
95 virtual bool preAddVertex (Vertex const&) { return false; } 95 virtual bool preAddVertex(Vertex const&) { return false; }
96 void renderPolygon (QPainter& painter, const QVector<Vertex>& poly3d, bool withlengths, bool withangles) const; 96 void renderPolygon(QPainter& painter, const QVector<Vertex>& poly3d, bool withlengths, bool withangles) const;
97 }; 97 };
98 98
99 // 99 //
100 // Base class for select-like edit modes 100 // Base class for select-like edit modes
101 // 101 //
102 class AbstractSelectMode : public AbstractEditMode 102 class AbstractSelectMode : public AbstractEditMode
103 { 103 {
104 DEFINE_CLASS (AbstractSelectMode, AbstractEditMode) 104 DEFINE_CLASS(AbstractSelectMode, AbstractEditMode)
105 105
106 public: 106 public:
107 AbstractSelectMode (GLRenderer* renderer); 107 AbstractSelectMode(GLRenderer* renderer);
108 108
109 virtual bool allowFreeCamera() const override 109 virtual bool allowFreeCamera() const override
110 { 110 {
111 return true; 111 return true;
112 } 112 }

mercurial