diff options
Diffstat (limited to 'source/blender/editors/mesh/meshtools.c')
-rw-r--r-- | source/blender/editors/mesh/meshtools.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 3ba8780c18a..dc825871bb7 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -1167,11 +1167,11 @@ bool ED_mesh_pick_face(bContext *C, Object *ob, const int mval[2], uint dist_px, /* sample rect to increase chances of selecting, so that when clicking * on an edge in the backbuf, we can still select a face */ *r_index = DRW_select_buffer_find_nearest_to_point( - vc.depsgraph, vc.ar, vc.v3d, mval, 1, me->totpoly + 1, &dist_px); + vc.depsgraph, vc.region, vc.v3d, mval, 1, me->totpoly + 1, &dist_px); } else { /* sample only on the exact position */ - *r_index = DRW_select_buffer_sample_point(vc.depsgraph, vc.ar, vc.v3d, mval); + *r_index = DRW_select_buffer_sample_point(vc.depsgraph, vc.region, vc.v3d, mval); } if ((*r_index) == 0 || (*r_index) > (unsigned int)me->totpoly) { @@ -1185,7 +1185,7 @@ bool ED_mesh_pick_face(bContext *C, Object *ob, const int mval[2], uint dist_px, static void ed_mesh_pick_face_vert__mpoly_find( /* context */ - struct ARegion *ar, + struct ARegion *region, const float mval[2], /* mesh data (evaluated) */ const MPoly *mp, @@ -1201,7 +1201,7 @@ static void ed_mesh_pick_face_vert__mpoly_find( float sco[2]; const int v_idx = ml->v; const float *co = mvert[v_idx].co; - if (ED_view3d_project_float_object(ar, co, sco, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) { + if (ED_view3d_project_float_object(region, co, sco, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) { const float len_test = len_manhattan_v2v2(mval, sco); if (len_test < *r_len_best) { *r_len_best = len_test; @@ -1226,7 +1226,7 @@ bool ED_mesh_pick_face_vert( if (ED_mesh_pick_face(C, ob, mval, dist_px, &poly_index)) { Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); - struct ARegion *ar = CTX_wm_region(C); + struct ARegion *region = CTX_wm_region(C); /* derived mesh to find deformed locations */ Mesh *me_eval = mesh_get_eval_final( @@ -1258,14 +1258,19 @@ bool ED_mesh_pick_face_vert( for (i = 0; i < me_eval_mpoly_len; i++) { if (index_mp_to_orig[i] == poly_index) { - ed_mesh_pick_face_vert__mpoly_find( - ar, mval_f, &me_eval_mpoly[i], me_eval_mvert, me_eval_mloop, &len_best, &v_idx_best); + ed_mesh_pick_face_vert__mpoly_find(region, + mval_f, + &me_eval_mpoly[i], + me_eval_mvert, + me_eval_mloop, + &len_best, + &v_idx_best); } } } else { if (poly_index < me_eval_mpoly_len) { - ed_mesh_pick_face_vert__mpoly_find(ar, + ed_mesh_pick_face_vert__mpoly_find(region, mval_f, &me_eval_mpoly[poly_index], me_eval_mvert, @@ -1302,7 +1307,7 @@ bool ED_mesh_pick_face_vert( typedef struct VertPickData { const MVert *mvert; const float *mval_f; /* [2] */ - ARegion *ar; + ARegion *region; /* runtime */ float len_best; @@ -1319,7 +1324,7 @@ static void ed_mesh_pick_vert__mapFunc(void *userData, if ((data->mvert[index].flag & ME_HIDE) == 0) { float sco[2]; - if (ED_view3d_project_float_object(data->ar, co, sco, V3D_PROJ_TEST_CLIP_DEFAULT) == + if (ED_view3d_project_float_object(data->region, co, sco, V3D_PROJ_TEST_CLIP_DEFAULT) == V3D_PROJ_RET_OK) { const float len = len_manhattan_v2v2(data->mval_f, sco); if (len < data->len_best) { @@ -1350,11 +1355,11 @@ bool ED_mesh_pick_vert( /* sample rect to increase chances of selecting, so that when clicking * on an face in the backbuf, we can still select a vert */ *r_index = DRW_select_buffer_find_nearest_to_point( - vc.depsgraph, vc.ar, vc.v3d, mval, 1, me->totvert + 1, &dist_px); + vc.depsgraph, vc.region, vc.v3d, mval, 1, me->totvert + 1, &dist_px); } else { /* sample only on the exact position */ - *r_index = DRW_select_buffer_sample_point(vc.depsgraph, vc.ar, vc.v3d, mval); + *r_index = DRW_select_buffer_sample_point(vc.depsgraph, vc.region, vc.v3d, mval); } if ((*r_index) == 0 || (*r_index) > (uint)me->totvert) { @@ -1369,8 +1374,8 @@ bool ED_mesh_pick_vert( /* derived mesh to find deformed locations */ Mesh *me_eval = mesh_get_eval_final(vc.depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH); - ARegion *ar = vc.ar; - RegionView3D *rv3d = ar->regiondata; + ARegion *region = vc.region; + RegionView3D *rv3d = region->regiondata; /* find the vert closest to 'mval' */ const float mval_f[2] = {(float)mval[0], (float)mval[1]}; @@ -1385,7 +1390,7 @@ bool ED_mesh_pick_vert( /* setup data */ data.mvert = me->mvert; - data.ar = ar; + data.region = region; data.mval_f = mval_f; data.len_best = FLT_MAX; data.v_idx_best = -1; |