Commit: 64b090037c7c032f58bd273f7e001af86d0c3b7e
Author: Campbell Barton
Date:   Sun Mar 5 21:00:20 2017 +1100
Branches: temp-select-pick
https://developer.blender.org/rB64b090037c7c032f58bd273f7e001af86d0c3b7e

Merge branch 'master' into temp-select-pick

===================================================================



===================================================================

diff --cc source/blender/editors/armature/armature_select.c
index be8e0bb152,a3b4b342fa..7366270550
--- a/source/blender/editors/armature/armature_select.c
+++ b/source/blender/editors/armature/armature_select.c
@@@ -304,39 -303,12 +304,33 @@@ static EditBone *get_nearest_editbonepo
                ebone_next_act = NULL;
        }
  
-       rect.xmin = mval[0] - 5;
-       rect.xmax = mval[0] + 5;
-       rect.ymin = mval[1] - 5;
-       rect.ymax = mval[1] + 5;
+       BLI_rcti_init_pt_size(&rect, mval, 5);
  
 -      hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect, true);
 +      bool use_cycle = true;
 +      bool do_nearest = false;
 +
 +      /* define if we use solid nearest select or not */
 +      if (use_cycle) {
 +              if (vc->v3d->drawtype > OB_WIRE) {
 +                      do_nearest = true;
 +                      if (len_manhattan_v2v2_int(mval, last_mval) < 3) {
 +                              do_nearest = false;
 +                      }
 +              }
 +              copy_v2_v2_int(last_mval, mval);
 +      }
 +      else {
 +              if (vc->v3d->drawtype > OB_WIRE) {
 +                      do_nearest = true;
 +              }
 +      }
 +
 +      const int select_mode = (do_nearest ? VIEW3D_SELECT_DEPTH_SORT_NEAREST 
: VIEW3D_SELECT_DEPTH_SORT_ALL);
 +
 +      hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect, select_mode);
        if (hits == 0) {
-               rect.xmin = mval[0] - 12;
-               rect.xmax = mval[0] + 12;
-               rect.ymin = mval[1] - 12;
-               rect.ymax = mval[1] + 12;
+               BLI_rcti_init_pt_size(&rect, mval, 12);
 -              hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect, 
true);
 +              hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect, 
select_mode);
        }
        /* See if there are any selected bones in this group */
        if (hits > 0) {
diff --cc source/blender/editors/armature/editarmature_sketch.c
index dc30a78fe7,3168c7373f..e878e25e1b
--- a/source/blender/editors/armature/editarmature_sketch.c
+++ b/source/blender/editors/armature/editarmature_sketch.c
@@@ -1907,12 -1907,9 +1907,9 @@@ static bool sk_selectStroke(bContext *C
  
        view3d_set_viewcontext(C, &vc);
  
-       rect.xmin = mval[0] - 5;
-       rect.xmax = mval[0] + 5;
-       rect.ymin = mval[1] - 5;
-       rect.ymax = mval[1] + 5;
+       BLI_rcti_init_pt_size(&rect, mval, 5);
  
 -      hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect, true);
 +      hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect, 
VIEW3D_SELECT_DEPTH_SORT_NEAREST);
  
        if (hits > 0) {
                int besthitresult = -1;
diff --cc source/blender/editors/metaball/mball_edit.c
index 5f5c994f33,9c42d3eb08..29e9f046a2
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@@ -592,12 -592,9 +592,9 @@@ bool ED_mball_select_pick(bContext *C, 
  
        view3d_set_viewcontext(C, &vc);
  
-       rect.xmin = mval[0] - 12;
-       rect.xmax = mval[0] + 12;
-       rect.ymin = mval[1] - 12;
-       rect.ymax = mval[1] + 12;
+       BLI_rcti_init_pt_size(&rect, mval, 12);
  
 -      hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect, true);
 +      hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect, 
VIEW3D_SELECT_DEPTH_SORT_NEAREST);
  
        /* does startelem exist? */
        ml = mb->editelems->first;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to