gizmos: consolidated input param dragging code into reusable class
This commit is contained in:
@@ -139,12 +139,28 @@ bool PolygonGenerator::GizmoPress(const NodeValueDatabase &db, const QPointF &p,
|
||||
return false;
|
||||
}
|
||||
|
||||
void PolygonGenerator::GizmoMove(const QPointF &p, const QVector2D &scale)
|
||||
void PolygonGenerator::GizmoMove(const QPointF &p, const QVector2D &scale, const rational& time)
|
||||
{
|
||||
QVector2D new_pos = QVector2D(p) / scale;
|
||||
|
||||
gizmo_drag_->set_standard_value(new_pos.x(), 0);
|
||||
gizmo_drag_->set_standard_value(new_pos.y(), 1);
|
||||
if (!gizmo_x_dragger_.IsStarted()) {
|
||||
gizmo_x_dragger_.Start(gizmo_drag_, time, 0);
|
||||
}
|
||||
|
||||
if (!gizmo_y_dragger_.IsStarted()) {
|
||||
gizmo_y_dragger_.Start(gizmo_drag_, time, 1);
|
||||
}
|
||||
|
||||
gizmo_x_dragger_.Drag(new_pos.x());
|
||||
gizmo_y_dragger_.Drag(new_pos.y());
|
||||
|
||||
InvalidateVisible(gizmo_drag_, gizmo_drag_);
|
||||
}
|
||||
|
||||
void PolygonGenerator::GizmoRelease(const QPointF &p)
|
||||
{
|
||||
gizmo_x_dragger_.End();
|
||||
gizmo_y_dragger_.End();
|
||||
}
|
||||
|
||||
QVector<QPointF> PolygonGenerator::GetGizmoCoordinates(const NodeValueDatabase &db, const QVector2D& scale) const
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define POLYGONGENERATOR_H
|
||||
|
||||
#include "node/node.h"
|
||||
#include "node/inputdragger.h"
|
||||
|
||||
OLIVE_NAMESPACE_ENTER
|
||||
|
||||
@@ -46,8 +47,8 @@ public:
|
||||
virtual void DrawGizmos(const NodeValueDatabase& db, QPainter *p, const QVector2D &scale) const override;
|
||||
|
||||
virtual bool GizmoPress(const NodeValueDatabase& db, const QPointF &p, const QVector2D &scale) override;
|
||||
virtual void GizmoMove(const QPointF &p, const QVector2D &scale) override;
|
||||
//virtual void GizmoRelease(const QPointF &p) override;
|
||||
virtual void GizmoMove(const QPointF &p, const QVector2D &scale, const rational &time) override;
|
||||
virtual void GizmoRelease(const QPointF &p) override;
|
||||
|
||||
private:
|
||||
QVector<QPointF> GetGizmoCoordinates(const NodeValueDatabase &db, const QVector2D &scale) const;
|
||||
@@ -61,6 +62,9 @@ private:
|
||||
NodeInput* gizmo_drag_;
|
||||
QPointF gizmo_drag_start_;
|
||||
|
||||
NodeInputDragger gizmo_x_dragger_;
|
||||
NodeInputDragger gizmo_y_dragger_;
|
||||
|
||||
};
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
Reference in New Issue
Block a user