#pragma once #include #include #include "wavyline.hpp" namespace ZShell::controls { class WavyLineRenderer final : public QCanvasPainterItemRenderer { public: void synchronizeData(QCanvasPainterItem* item) override; void paint(QCanvasPainter* painter) override; private: void paintLinear(QCanvasPainter* painter); void paintArc(QCanvasPainter* painter); int m_lineWidth; qreal m_amplitudeMultiplier; int m_frequency; qreal m_startX; qreal m_fullLength; QColor m_color; qreal m_waveProgress; WavyLine::PathType m_pathType; qreal m_startAngle; qreal m_fullAngle; qreal m_radius; qreal m_value; }; } // namespace ZShell::controls