64 void setValue(qreal val,
KUndo2Command* parentUndoCmd =
nullptr);
67 void setInterpolationMode(InterpolationMode mode,
KUndo2Command* parentUndoCmd =
nullptr);
68 InterpolationMode interpolationMode()
const;
70 void setTangentsMode(TangentsMode mode,
KUndo2Command* parentUndoCmd =
nullptr);
71 TangentsMode tangentsMode()
const;
73 void setInterpolationTangents(QPointF leftTangent, QPointF rightTangent,
KUndo2Command* parentUndoCmd =
nullptr);
74 QPointF leftTangent()
const;
75 QPointF rightTangent()
const;
128 void addScalarKeyframe(
int time, qreal
value,
KUndo2Command *parentUndoCmd =
nullptr);
132 void setLimits(qreal low, qreal high);
137 qreal valueAt(
int time)
const;
140 bool isCurrentTimeAffectedBy(
int keyTime);
142 void setDefaultValue(qreal
value);
145 static QPointF interpolate(QPointF point1, QPointF rightTangent, QPointF leftTangent, QPointF point2, qreal t);
148 virtual void removeKeyframe(
int time,
KUndo2Command *parentUndoCmd =
nullptr)
override;
149 virtual KisTimeSpan affectedFrames(
int time)
const override;
150 virtual KisTimeSpan identicalFrames(
int time)
const override;
153 static qreal findCubicCurveParameter(
int time0, qreal delta0, qreal delta1,
int time1,
int time);
154 static qreal cubicBezier(qreal
p0, qreal delta1, qreal delta2, qreal
p3, qreal t);
155 static void normalizeTangents(
const QPointF point1, QPointF &rightTangent, QPointF &leftTangent,
const QPointF point2);
158 virtual QRect affectedRect(
int time)
const override;
159 virtual QPair<int, KisKeyframeSP> loadKeyframe(
const QDomElement &keyframeNode)
override;
160 virtual void saveKeyframe(
KisKeyframeSP keyframe, QDomElement keyframeElement,
const QString &layerFilename)
override;
163 QScopedPointer<Private>
m_d;