AbstractClipItem(const ItemInfo info, const QRectF& rect, double fps);
virtual ~ AbstractClipItem();
void updateSelectedKeyFrame();
+
+ /** @brief Move the selected keyframe (does not influence the effect, only the display in timeline).
+ * @param pos new Position
+ * @param value new Value */
void updateKeyFramePos(const GenTime pos, const double value);
int addKeyFrame(const GenTime pos, const double value);
bool hasKeyFrames() const;
+ int editedKeyFramePos() const;
int selectedKeyFramePos() const;
double selectedKeyFrameValue() const;
+ double editedKeyFrameValue() const;
double keyFrameFactor() const;
+ /** @brief Returns the number of keyframes the selected effect has. */
+ int keyFrameNumber() const;
ItemInfo info() const;
CustomTrackScene* projectScene();
void updateRectGeometry();
bool isItemLocked() const;
void closeAnimation();
- virtual OPERATIONTYPE operationMode(QPointF pos) = 0;
+ virtual OPERATIONTYPE operationMode(QPointF pos) = 0;
virtual GenTime startPos() const ;
virtual void setTrack(int track);
virtual GenTime endPos() const ;
virtual int track() const ;
virtual GenTime cropStart() const ;
virtual GenTime cropDuration() const ;
- virtual void resizeStart(int posx);
+
+ /** @brief Resizes the clip from the start.
+ * @param posx Absolute position of new in point
+ * @param hasSizeLimit (optional) Whether the clip has a maximum size */
+ virtual void resizeStart(int posx, bool hasSizeLimit = true);
+
+ /** @brief Resizes the clip from the end.
+ * @param posx Absolute position of new out point */
virtual void resizeEnd(int posx);
virtual double fps() const;
virtual void updateFps(double fps);
protected:
ItemInfo m_info;
// int m_track;
+ /** The position of the current keyframe when it has moved */
int m_editedKeyframe;
+ /** The position of the current keyframe before it was moved */
int m_selectedKeyframe;
/* GenTime m_cropStart;
GenTime m_cropDuration;
GenTime m_startPos;*/
GenTime m_maxDuration;
QMap <int, int> m_keyframes;
+ /** @brief Strech factor so that keyframes display on the full clip height. */
double m_keyframeFactor;
+ /** @brief Offset factor so that keyframes minimum value are displaed at the bottom of the clip. */
+ double m_keyframeOffset;
+ /** @brief Default reset value for keyframe. */
double m_keyframeDefault;
+ /** The (keyframe) parameter that is visible and editable in timeline (on the clip) */
+ int m_visibleParam;
double m_fps;
//QRect visibleRect();
void drawKeyFrames(QPainter *painter, QRectF exposedRect);