33 lines
689 B
C++
33 lines
689 B
C++
#pragma once
|
|
|
|
#include <QCanvasPainterItemRenderer>
|
|
#include <QColor>
|
|
#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
|