29 ,
public QGraphicsItem
32 SCORE_GRAPHICS_ITEM_TYPE(110)
48 std::vector<ossia::value> tab;
53 static constexpr QSizeF defaultSize{400., 400.};
54 static constexpr QSizeF minimumSize{60., 60.};
56 double width() const noexcept {
return m_size.width(); }
57 double height() const noexcept {
return m_size.height(); }
58 void setSize(QSizeF sz);
60 halp::xy_type<float> cursorSize{0.04, 0.04};
62 int selectedCursor{-1};
63 int selectedSource{-1};
66 double min{0.}, max{1.};
69 ossia::value m_value{};
70 ossia::value m_execValue{};
73 RightClickImpl* impl{};
75 QGraphicsPathGeneratorXY(QGraphicsItem* parent);
77 void setPoint(
const QPointF& r);
78 void setValue(ossia::value v);
79 ossia::value value()
const;
80 void setExecutionValue(
const ossia::value& v);
81 void setExecutionProgress(
double v);
84 void setExecutionPosition(
double pos);
85 void resetExecution();
89 void setPathMode(
int mode);
90 void setRadii(
float x,
float y);
91 void setRatioX(
int r);
92 void setRatioY(
int r);
93 void setPhase(
float p);
94 void setSpeed(
float s);
95 void setPingPong(
bool b);
97 void setRange(
const ossia::value& min,
const ossia::value& max);
98 void setRange(
const ossia::domain& dom);
101 void sliderMoved() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved)
102 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
105 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
106 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
107 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
108 bool sceneEvent(QEvent* event) override;
109 QRectF boundingRect() const override;
110 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
113 const
std::vector<ossia::value>& sources() const noexcept;
118 QPointF pathPoint(const
std::vector<ossia::value>& nodes,
double u) const noexcept;
121 QRectF progressRect() const noexcept;
122 void recomputePaths();
125 QSizeF m_size{defaultSize};
126 std::vector<QPainterPath> m_paths;
129 bool m_hasProgress{};
131 int m_pathMode{Linear};
133 float m_radiusX{1.f}, m_radiusY{1.f};
134 int m_ratioX{3}, m_ratioY{2};