diff --git a/source/blender/editors/transform/transform_snap.cc b/source/blender/editors/transform/transform_snap.cc index d7422baefa2..0eaeea6982e 100644 --- a/source/blender/editors/transform/transform_snap.cc +++ b/source/blender/editors/transform/transform_snap.cc @@ -167,17 +167,6 @@ static bool doForceIncrementSnap(const TransInfo *t) return !transformModeUseSnap(t); } -static void snap_source_transformed(TransInfo *t, float r_vec[3]) -{ - float mat[4][4]; - unit_m4(mat); - if (t->mode_info->transform_matrix_fn) { - t->mode_info->transform_matrix_fn(t, mat); - } - - mul_v3_m4v3(r_vec, mat, t->tsnap.snap_source); -} - void drawSnapping(const bContext *C, TransInfo *t) { uchar col[4], selectedCol[4], activeCol[4]; @@ -187,13 +176,10 @@ void drawSnapping(const bContext *C, TransInfo *t) const bool draw_source = (t->spacetype == SPACE_VIEW3D) && (t->tsnap.status & SNAP_SOURCE_FOUND) && - (t->tsnap.mode & SCE_SNAP_MODE_EDGE_PERPENDICULAR); + ((t->tsnap.mode & SCE_SNAP_MODE_EDGE_PERPENDICULAR) || + t->tsnap.snap_source_fn == nullptr); - bool draw_source_transformed = (t->spacetype == SPACE_VIEW3D) && - (t->tsnap.status & SNAP_SOURCE_FOUND) && - !(t->modifiers & MOD_EDIT_SNAP_SOURCE); - - if (!(draw_source || draw_source_transformed || validSnap(t))) { + if (!(draw_source || validSnap(t))) { return; } @@ -220,7 +206,7 @@ void drawSnapping(const bContext *C, TransInfo *t) GPU_depth_test(GPU_DEPTH_NONE); RegionView3D *rv3d = (RegionView3D *)t->region->regiondata; - if (draw_source_transformed || !BLI_listbase_is_empty(&t->tsnap.points)) { + if (!BLI_listbase_is_empty(&t->tsnap.points)) { /* Draw snap points. */ float size = 2.0f * UI_GetThemeValuef(TH_VERTEX_SIZE); @@ -232,11 +218,6 @@ void drawSnapping(const bContext *C, TransInfo *t) immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); - float snap_source_tranformed[3]; - if (draw_source_transformed) { - snap_source_transformed(t, snap_source_tranformed); - } - if (!BLI_listbase_is_empty(&t->tsnap.points)) { LISTBASE_FOREACH (TransSnapPoint *, p, &t->tsnap.points) { if (p == t->tsnap.selectedPoint) { @@ -247,53 +228,6 @@ void drawSnapping(const bContext *C, TransInfo *t) } imm_drawcircball(p->co, ED_view3d_pixel_size(rv3d, p->co) * size, view_inv, pos); } - - if (t->modifiers & MOD_EDIT_SNAP_SOURCE) { - /* Indicate the new snap source position. */ - getSnapPoint(t, snap_source_tranformed); - draw_source_transformed = true; - } - } - - if (draw_source_transformed && - !compare_v3v3(snap_source_tranformed, t->tsnap.snap_target, FLT_EPSILON)) - { - float view_inv[4][4]; - copy_m4_m4(view_inv, rv3d->viewinv); - - float vx[3], vy[3], v[3]; - float size_tmp = ED_view3d_pixel_size(rv3d, snap_source_tranformed) * size; - float size_fac = 0.5f; - - mul_v3_v3fl(vx, view_inv[0], size_tmp); - mul_v3_v3fl(vy, view_inv[1], size_tmp); - - immUniformColor4ubv(col); - - imm_drawcircball(snap_source_tranformed, size_tmp, view_inv, pos); - - immBegin(GPU_PRIM_LINES, 8); - add_v3_v3v3(v, snap_source_tranformed, vx); - immVertex3fv(pos, v); - madd_v3_v3fl(v, vx, size_fac); - immVertex3fv(pos, v); - - sub_v3_v3v3(v, snap_source_tranformed, vx); - immVertex3fv(pos, v); - madd_v3_v3fl(v, vx, -size_fac); - immVertex3fv(pos, v); - - add_v3_v3v3(v, snap_source_tranformed, vy); - immVertex3fv(pos, v); - madd_v3_v3fl(v, vy, size_fac); - immVertex3fv(pos, v); - - sub_v3_v3v3(v, snap_source_tranformed, vy); - immVertex3fv(pos, v); - madd_v3_v3fl(v, vy, -size_fac); - immVertex3fv(pos, v); - - immEnd(); } immUnbindProgram();