diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-04-21 14:16:19 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-04-21 14:25:43 +0300 |
commit | e3a6440e7af7f90432319aec9f6ad43b557def31 (patch) | |
tree | 6fa80f9fc9547d6c20b9cd92e0b673865f588257 /source/blender/editors/include/ED_mesh.h | |
parent | 907d4d310f697a2a9b5c83bb2fc428175a7daaf2 (diff) |
BMesh: mesh-data picking, general improvements
Generalize logic for vert/edge/face selection:
- index cycling.
- selection bias with mixed modes.
Details:
- Edges now support index cycling (as verts/faces did already)
- Cycling over near elements is now only enabled when the mouse position remains the same.
- No longer do 2 selection passes to perform index cycling.
Fixes:
- Edges behind the view could be selected (surprising nobody reported!)
- Selection bias now only changes the element that gets picked without interning the return distance
(was buggy with mixed modes).
Diffstat (limited to 'source/blender/editors/include/ED_mesh.h')
-rw-r--r-- | source/blender/editors/include/ED_mesh.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 3c672362a54..b982ff2a83b 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -137,20 +137,18 @@ bool EDBM_backbuf_border_mask_init(struct ViewContext *vc, const int mcords[][2] short xmin, short ymin, short xmax, short ymax); bool EDBM_backbuf_circle_init(struct ViewContext *vc, short xs, short ys, short rads); -struct BMVert *EDBM_vert_find_nearest_ex( - struct ViewContext *vc, float *r_dist, - const bool use_select_bias); +struct BMVert *EDBM_vert_find_nearest_ex(struct ViewContext *vc, float *r_dist, + const bool use_select_bias, bool use_cycle); struct BMVert *EDBM_vert_find_nearest( struct ViewContext *vc, float *r_dist); -struct BMEdge *EDBM_edge_find_nearest_ex( - struct ViewContext *vc, float *r_dist, - const bool use_select_bias); +struct BMEdge *EDBM_edge_find_nearest_ex(struct ViewContext *vc, float *r_dist, + const bool use_select_bias, const bool use_cycle); struct BMEdge *EDBM_edge_find_nearest( struct ViewContext *vc, float *r_dist); -struct BMFace *EDBM_face_find_nearest_ex( - struct ViewContext *vc, float *r_dist, +struct BMFace *EDBM_face_find_nearest_ex(struct ViewContext *vc, float *r_dist, + const bool use_select_bias, const bool use_cycle, struct BMFace **r_efa_zbuf); struct BMFace *EDBM_face_find_nearest( struct ViewContext *vc, float *r_dist); |