From 3e57e06542774ed6758e89951d86765f4f55d028 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 9 Dec 2018 15:56:47 +1100 Subject: [PATCH] added gizmo for anchor point --- effects/internal/transformeffect.cpp | 5 +++++ effects/internal/transformeffect.h | 1 + ui/viewerwidget.cpp | 17 +++++++++++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/effects/internal/transformeffect.cpp b/effects/internal/transformeffect.cpp index b83aef23f..5ece40f36 100644 --- a/effects/internal/transformeffect.cpp +++ b/effects/internal/transformeffect.cpp @@ -98,6 +98,11 @@ TransformEffect::TransformEffect(Clip* c, const EffectMeta* em) : Effect(c, em) right_center_gizmo->set_cursor(Qt::SizeHorCursor); right_center_gizmo->x_field = scale_x; + anchor_gizmo = add_gizmo(GIZMO_TYPE_TARGET); + anchor_gizmo->set_cursor(Qt::SizeAllCursor); + anchor_gizmo->x_field = anchor_x_box; + anchor_gizmo->y_field = anchor_y_box; + rotate_gizmo = add_gizmo(GIZMO_TYPE_DOT); rotate_gizmo->color = Qt::green; rotate_gizmo->set_cursor(Qt::SizeAllCursor); diff --git a/effects/internal/transformeffect.h b/effects/internal/transformeffect.h index 7fc635ad2..c198ffb0a 100644 --- a/effects/internal/transformeffect.h +++ b/effects/internal/transformeffect.h @@ -33,6 +33,7 @@ private: EffectGizmo* bottom_right_gizmo; EffectGizmo* left_center_gizmo; EffectGizmo* right_center_gizmo; + EffectGizmo* anchor_gizmo; EffectGizmo* rotate_gizmo; EffectGizmo* rect_gizmo; diff --git a/ui/viewerwidget.cpp b/ui/viewerwidget.cpp index 81e22ae7e..3fcc8dd4d 100644 --- a/ui/viewerwidget.cpp +++ b/ui/viewerwidget.cpp @@ -846,12 +846,25 @@ void ViewerWidget::paintGL() { glVertex3f(g->screen_pos[0].x(), g->screen_pos[0].y(), gizmo_z); glEnd(); break; - case GIZMO_TYPE_DOT: // draw target - glBegin(GL_QUADS); + case GIZMO_TYPE_TARGET: // draw target + glBegin(GL_LINES); glVertex3f(g->screen_pos[0].x()-target_size, g->screen_pos[0].y()-target_size, gizmo_z); glVertex3f(g->screen_pos[0].x()+target_size, g->screen_pos[0].y()-target_size, gizmo_z); + + glVertex3f(g->screen_pos[0].x()+target_size, g->screen_pos[0].y()-target_size, gizmo_z); + glVertex3f(g->screen_pos[0].x()+target_size, g->screen_pos[0].y()+target_size, gizmo_z); + glVertex3f(g->screen_pos[0].x()+target_size, g->screen_pos[0].y()+target_size, gizmo_z); glVertex3f(g->screen_pos[0].x()-target_size, g->screen_pos[0].y()+target_size, gizmo_z); + + glVertex3f(g->screen_pos[0].x()-target_size, g->screen_pos[0].y()+target_size, gizmo_z); + glVertex3f(g->screen_pos[0].x()-target_size, g->screen_pos[0].y()-target_size, gizmo_z); + + glVertex3f(g->screen_pos[0].x()-target_size, g->screen_pos[0].y(), gizmo_z); + glVertex3f(g->screen_pos[0].x()+target_size, g->screen_pos[0].y(), gizmo_z); + + glVertex3f(g->screen_pos[0].x(), g->screen_pos[0].y()-target_size, gizmo_z); + glVertex3f(g->screen_pos[0].x(), g->screen_pos[0].y()+target_size, gizmo_z); glEnd(); break; }