34 SCORE_SERIALIZE_FRIENDS
37 = std::vector<QPointF, boost::alignment::aligned_allocator<QPointF, 32>>;
45 Curve::Point s, Curve::Point e,
const Id<SegmentModel>&
id, QObject* parent);
52 virtual void updateData(
int numInterp)
const = 0;
53 virtual double valueAt(
double x)
const = 0;
55 const data_vector& data()
const {
return m_data; }
57 void setStart(
const Curve::Point& pt);
58 Curve::Point start()
const {
return m_start; }
60 void setEnd(
const Curve::Point& pt);
61 Curve::Point end()
const {
return m_end; }
63 void setPrevious(
const OptionalId<SegmentModel>& previous);
64 const OptionalId<SegmentModel>& previous()
const {
return m_previous; }
66 void setFollowing(
const OptionalId<SegmentModel>& following);
67 const OptionalId<SegmentModel>& following()
const {
return m_following; }
70 virtual void setVerticalParameter(
double p);
71 virtual void setHorizontalParameter(
double p);
72 virtual std::optional<double> verticalParameter()
const;
73 virtual std::optional<double> horizontalParameter()
const;
75 virtual ossia::curve_segment<double> makeDoubleFunction()
const = 0;
76 virtual ossia::curve_segment<float> makeFloatFunction()
const = 0;
77 virtual ossia::curve_segment<int> makeIntFunction()
const = 0;
87 toSegmentSpecificData()};
91 void dataChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, dataChanged)
92 void previousChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, previousChanged)
93 void followingChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, followingChanged)
94 void startChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, startChanged)
95 void endChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, endChanged)
98 virtual void on_startChanged() = 0;
99 virtual void on_endChanged() = 0;
101 virtual QVariant toSegmentSpecificData()
const = 0;
103 mutable data_vector m_data;
104 mutable bool m_valid{};
107 Curve::Point m_start, m_end;
110 OptionalId<SegmentModel> m_previous, m_following;