[Bf-blender-cvs] [64b090037c] temp-select-pick: Merge branch 'master' into temp-select-pick
Campbell Barton
noreply at git.blender.org
Mon Mar 6 08:41:52 CET 2017
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;
More information about the Bf-blender-cvs
mailing list