3#include <QtQuick/private/qquickpath_p.h>
5#include "qml_material/export.hpp"
18class QML_MATERIAL_API PathArcWave :
public QQuickCurve {
20 Q_PROPERTY(qreal centerX READ center_x WRITE set_center_x NOTIFY centerXChanged FINAL)
21 Q_PROPERTY(qreal centerY READ center_y WRITE set_center_y NOTIFY centerYChanged FINAL)
22 Q_PROPERTY(qreal radius READ radius WRITE set_radius NOTIFY radiusChanged FINAL)
23 Q_PROPERTY(qreal startAngle READ start_angle WRITE set_start_angle NOTIFY startAngleChanged FINAL)
24 Q_PROPERTY(qreal sweepAngle READ sweep_angle WRITE set_sweep_angle NOTIFY sweepAngleChanged FINAL)
25 Q_PROPERTY(qreal amplitude READ amplitude WRITE set_amplitude NOTIFY amplitudeChanged FINAL)
26 Q_PROPERTY(qreal waveLength READ wave_length WRITE set_wave_length NOTIFY waveLengthChanged FINAL)
27 Q_PROPERTY(qreal phase READ phase WRITE set_phase NOTIFY phaseChanged FINAL)
28 Q_PROPERTY(qreal smoothness READ smoothness WRITE set_smoothness NOTIFY smoothnessChanged FINAL)
29 QML_NAMED_ELEMENT(PathArcWave)
30 QML_ADDED_IN_VERSION(2, 0)
33 explicit PathArcWave(QObject* parent =
nullptr);
34 ~PathArcWave() override;
36 auto center_x() const noexcept -> qreal;
37 auto center_y() const noexcept -> qreal;
38 auto radius() const noexcept -> qreal;
39 auto start_angle() const noexcept -> qreal;
40 auto sweep_angle() const noexcept -> qreal;
41 auto amplitude() const noexcept -> qreal;
42 auto wave_length() const noexcept -> qreal;
43 auto phase() const noexcept -> qreal;
44 auto smoothness() const noexcept -> qreal;
46 void set_center_x(qreal);
47 void set_center_y(qreal);
48 void set_radius(qreal);
49 void set_start_angle(qreal);
50 void set_sweep_angle(qreal);
51 void set_amplitude(qreal);
52 void set_wave_length(qreal);
53 void set_phase(qreal);
54 void set_smoothness(qreal);
56 void addToPath(QPainterPath& path, const QQuickPathData& data) override;
59 void centerXChanged();
60 void centerYChanged();
62 void startAngleChanged();
63 void sweepAngleChanged();
64 void amplitudeChanged();
65 void waveLengthChanged();
67 void smoothnessChanged();
70 qreal m_center_x { 0.0 };
71 qreal m_center_y { 0.0 };
72 qreal m_radius { 16.0 };
73 qreal m_start_angle { 0.0 };
74 qreal m_sweep_angle { 360.0 };
75 qreal m_amplitude { 4.0 };
76 qreal m_wave_length { 30.0 };
77 qreal m_phase { 0.0 };
78 qreal m_smoothness { 0.48 };