beziercurve.h
Go to the documentation of this file.
1 #ifndef BEZIERCURVE_H
2 #define BEZIERCURVE_H
3 
4 #include <QSettings>
5 #include <QQuickItem>
6 
7 namespace dnai
8 {
9  namespace views
10  {
11  class BezierCurve : public QQuickItem
12  {
13  Q_OBJECT
14 
15  Q_PROPERTY(QPointF p1 READ p1 WRITE setP1 NOTIFY p1Changed)
16  Q_PROPERTY(QPointF p2 READ p2 WRITE setP2 NOTIFY p2Changed)
17  Q_PROPERTY(QPointF p3 READ p3 WRITE setP3 NOTIFY p3Changed)
18  Q_PROPERTY(QPointF p4 READ p4 WRITE setP4 NOTIFY p4Changed)
19 
20  Q_PROPERTY(bool dotted READ dotted WRITE setDotted NOTIFY dottedChanged)
21  Q_PROPERTY(uint lineWidth READ lineWidth WRITE setLineWidth NOTIFY lineWidthChanged)
22  Q_PROPERTY(uint segmentCount READ segmentCount WRITE setSegmentCount NOTIFY segmentCountChanged)
23 
24  Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged)
25  Q_PROPERTY(QColor dottedColor READ dottedColor WRITE setDottedColor NOTIFY dottedColorChanged)
26 
27  public:
28  explicit BezierCurve(QQuickItem *parent = nullptr);
29  ~BezierCurve();
30 
35  virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
36 
37  void setBack();
38 
39  public:
40  QPointF p1() const { return m_p1; }
41  QPointF p2() const { return m_p2; }
42  QPointF p3() const { return m_p3; }
43  QPointF p4() const { return m_p4; }
44 
45  bool dotted() const { return m_dotted; }
46  uint lineWidth() const { return m_lineWidth; }
47  uint segmentCount() const { return m_segmentCount; }
48 
49  const QColor &fillColor() const { return m_fillColor; }
50  const QColor &dottedColor() const { return m_dottedColor; }
51 
52  public:
53  void setP1(const QPointF &p);
54  void setP2(const QPointF &p);
55  void setP3(const QPointF &p);
56  void setP4(const QPointF &p);
57 
58  void setDotted(bool dotted);
59  void setLineWidth(uint width);
60  void setSegmentCount(uint count);
61 
62  void setFillColor(const QColor &color);
63  void setDottedColor(const QColor &color);
64 
65  void setRealPosition(const QPointF &pos);
66 
67  signals:
68  void p1Changed(const QPointF &p);
69  void p2Changed(const QPointF &p);
70  void p3Changed(const QPointF &p);
71  void p4Changed(const QPointF &p);
72 
73  void dottedChanged(bool d);
74  void lineWidthChanged(uint w);
75  void segmentCountChanged(uint count);
76 
77  void fillColorChanged(const QColor &color);
78  void dottedColorChanged(const QColor &color);
79 
80  private:
81  QPointF m_p1;
82  QPointF m_p2;
83  QPointF m_p3;
84  QPointF m_p4;
85 
88 
89  bool m_dotted;
90  QColor m_fillColor;
91  QColor m_dottedColor;
92 
93  private:
95  QVector2D m_scale;
96  QVector2D m_lastScale;
97  qreal m_saveWidth;
98  qreal m_saveHeight;
99 
100  };
101  }
102 }
103 
104 #endif // BEZIERCURVE_H
QPointF m_p3
Definition: beziercurve.h:83
bool dotted() const
Definition: beziercurve.h:45
QPointF p1() const
Definition: beziercurve.h:40
void setFillColor(const QColor &color)
Definition: beziercurve.cpp:100
QPointF m_p2
Definition: beziercurve.h:82
void segmentCountChanged(uint count)
Definition: moc_beziercurve.cpp:348
void p3Changed(const QPointF &p)
Definition: moc_beziercurve.cpp:320
void setBack()
Definition: beziercurve.cpp:258
void setP2(const QPointF &p)
Definition: beziercurve.cpp:42
const QColor & dottedColor() const
Definition: beziercurve.h:50
uint lineWidth() const
Definition: beziercurve.h:46
QVector2D m_scale
Definition: beziercurve.h:95
QPointF p4() const
Definition: beziercurve.h:43
uint m_segmentCount
Definition: beziercurve.h:87
qreal m_saveWidth
Definition: beziercurve.h:97
bool m_holdClick
Definition: beziercurve.h:94
void setP1(const QPointF &p)
Definition: beziercurve.cpp:33
QPointF m_p1
Definition: beziercurve.h:81
void p4Changed(const QPointF &p)
Definition: moc_beziercurve.cpp:327
QPointF p3() const
Definition: beziercurve.h:42
const QColor & fillColor() const
Definition: beziercurve.h:49
void setP4(const QPointF &p)
Definition: beziercurve.cpp:60
QPointF p2() const
Definition: beziercurve.h:41
void lineWidthChanged(uint w)
Definition: moc_beziercurve.cpp:341
void setP3(const QPointF &p)
Definition: beziercurve.cpp:51
virtual QSGNode * updatePaintNode(QSGNode *, UpdatePaintNodeData *) override
Override Base and draw a beautifull bezier curve.
Definition: beziercurve.cpp:118
QColor m_dottedColor
Definition: beziercurve.h:91
QPointF m_p4
Definition: beziercurve.h:84
void setSegmentCount(uint count)
Definition: beziercurve.cpp:80
void fillColorChanged(const QColor &color)
Definition: moc_beziercurve.cpp:355
uint segmentCount() const
Definition: beziercurve.h:47
void setDotted(bool dotted)
Definition: beziercurve.cpp:90
void setLineWidth(uint width)
Definition: beziercurve.cpp:71
Definition: api.h:13
void dottedChanged(bool d)
Definition: moc_beziercurve.cpp:334
void p1Changed(const QPointF &p)
Definition: moc_beziercurve.cpp:306
bool m_dotted
Definition: beziercurve.h:89
Definition: beziercurve.h:11
uint m_lineWidth
Definition: beziercurve.h:86
qreal m_saveHeight
Definition: beziercurve.h:98
QColor m_fillColor
Definition: beziercurve.h:90
QVector2D m_lastScale
Definition: beziercurve.h:96
void dottedColorChanged(const QColor &color)
Definition: moc_beziercurve.cpp:362
void p2Changed(const QPointF &p)
Definition: moc_beziercurve.cpp:313
void setRealPosition(const QPointF &pos)
Definition: beziercurve.cpp:278
void setDottedColor(const QColor &color)
Definition: beziercurve.cpp:109