35 SCORE_SERIALIZE_FRIENDS
38 = std::vector<QPointF, boost::alignment::aligned_allocator<QPointF, 32>>;
46 Curve::Point s, Curve::Point e,
const Id<SegmentModel>&
id, QObject* parent);
53 virtual void updateData(
int numInterp)
const = 0;
54 virtual double valueAt(
double x)
const = 0;
56 const data_vector& data()
const {
return m_data; }
58 void setStart(
const Curve::Point& pt);
59 Curve::Point start()
const {
return m_start; }
61 void setEnd(
const Curve::Point& pt);
62 Curve::Point end()
const {
return m_end; }
64 void setPrevious(
const OptionalId<SegmentModel>& previous);
65 const OptionalId<SegmentModel>& previous()
const {
return m_previous; }
67 void setFollowing(
const OptionalId<SegmentModel>& following);
68 const OptionalId<SegmentModel>& following()
const {
return m_following; }
72 virtual void setSpecificData(
const QVariant& data);
73 virtual bool specificDataEquals(
const QVariant& data)
const noexcept;
76 virtual void setVerticalParameter(
double p);
77 virtual void setHorizontalParameter(
double p);
78 virtual std::optional<double> verticalParameter()
const;
79 virtual std::optional<double> horizontalParameter()
const;
81 virtual ossia::curve_segment<double> makeDoubleFunction()
const = 0;
82 virtual ossia::curve_segment<float> makeFloatFunction()
const = 0;
83 virtual ossia::curve_segment<int> makeIntFunction()
const = 0;
87 virtual ossia::curve_segment<double>
88 makeScaledDoubleFunction(
double offset,
double factor)
const;
89 virtual ossia::curve_segment<float>
90 makeScaledFloatFunction(
double offset,
double factor)
const;
91 virtual ossia::curve_segment<int>
92 makeScaledIntFunction(
double offset,
double factor)
const;
102 toSegmentSpecificData()};
106 void dataChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, dataChanged)
107 void previousChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, previousChanged)
108 void followingChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, followingChanged)
109 void startChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, startChanged)
110 void endChanged() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, endChanged)
113 virtual void on_startChanged() = 0;
114 virtual void on_endChanged() = 0;
116 virtual QVariant toSegmentSpecificData()
const = 0;
118 mutable data_vector m_data;
119 mutable bool m_valid{};
122 Curve::Point m_start, m_end;
126 OptionalId<SegmentModel> m_previous, m_following;