34 : time (t), value (v), curve (c)
36 jassert (c >= -1.0 && c <= 1.0);
43 float value = 0, curve = 0;
49 int getNumPoints() const noexcept;
51 juce::Range<
float> getValueLimits() const;
55 float getPointValue (
int index) const noexcept;
56 float getPointCurve (
int index) const noexcept;
58 CurvePoint getBezierHandle (
int index) const noexcept;
59 CurvePoint getBezierPoint (
int index) const noexcept;
60 void getBezierEnds (
int index,
double& x1,
float& y1,
double& x2,
float& y2) const noexcept;
68 int getNearestPoint (
TimePosition&,
float& v,
double xToYRatio) const;
70 int countPointsInRegion (TimeRange) const;
77 void removePoint (
int index);
78 void removePointsInRegion (TimeRange);
79 void removeRegionAndCloseGap (TimeRange);
80 void removeRedundantPoints (TimeRange);
85 int movePoint (
int index,
TimePosition,
float newValue,
bool removeInterveningPoints);
88 void setPointValue (
int index,
float newValue);
89 void setCurveValue (
int index,
float newCurve);
96 bool leaveOpenAtStart,
99 void simplify (TimeRange,
double minTimeDifference,
float minValueDifference);
100 void rescaleAllTimes (
double factor);
102 void rescaleValues (
float factor, TimeRange);
103 void addToValues (
float valueDelta, TimeRange);
105 static
double getBezierXfromT (
double t,
double x1,
double xb,
double x2);
106 static
float getBezierYFromX (
double t,
double x1,
float y1,
double xb,
float yb,
double x2,
float y2);
108 static
void removeAllAutomationCurvesRecursively (const
juce::ValueTree&);
110 juce::ValueTree parentState, state;
115 juce::UndoManager* getUndoManager() const;
116 void addPointAtIndex (
int index,
TimePosition,
float v,
float c);
117 void checkParenthoodStatus();