diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-03-13 18:54:47 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-03-13 18:54:47 +0400 |
commit | 25e579c63191af5cd00d35da5af122f0d7fbd723 (patch) | |
tree | f7551f94fa48feb1b7f3c384a349a2d73b7234ad /source/blender | |
parent | f530adf73d8e1f4914391cb3c3e96b2196612e92 (diff) |
fix for minor glitch in recent addition to create faces from partial selections.
BM_edge_exists() would return an edge if both verts passed match, now assert instead.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon.c | 4 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_queries.c | 2 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_tools.c | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c index c77e1603885..e2d2fa67f31 100644 --- a/source/blender/bmesh/intern/bmesh_polygon.c +++ b/source/blender/bmesh/intern/bmesh_polygon.c @@ -157,8 +157,8 @@ static void bm_face_calc_poly_normal_vertex_cos(BMFace *f, float n[3], /** * For tools that insist on using triangles, ideally we would cache this data. * - * \param r_loops Empty array of loops, (f->len) - * \param r_index Empty array of loops, ((f->len - 2) * 3) + * \param r_loops Store face loop pointers, (f->len) + * \param r_index Store triangle triples, indicies into \a r_loops, ((f->len - 2) * 3) */ void BM_face_calc_tessellation(BMFace *f, BMLoop **r_loops, int (*_r_index)[3]) { diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c index 54950f2af82..c073f0f2793 100644 --- a/source/blender/bmesh/intern/bmesh_queries.c +++ b/source/blender/bmesh/intern/bmesh_queries.c @@ -1352,6 +1352,8 @@ BMEdge *BM_edge_exists(BMVert *v1, BMVert *v2) BMIter iter; BMEdge *e; + BLI_assert(v1 != v2); + BM_ITER_ELEM (e, &iter, v1, BM_EDGES_OF_VERT) { if (e->v1 == v2 || e->v2 == v2) return e; diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index eb5e66cbfba..39a5ac534d3 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -1185,8 +1185,9 @@ static BMElem *edbm_add_edge_face_exec__tricky_extend_sel(BMesh *bm) (BM_edge_share_face_check(e, ed_pair_v2[0]) == false)) ) { - BMEdge *e_other = BM_edge_exists(BM_edge_other_vert(ed_pair_v1[0], e->v1), - BM_edge_other_vert(ed_pair_v2[0], e->v2)); + BMVert *v1_other = BM_edge_other_vert(ed_pair_v1[0], e->v1); + BMVert *v2_other = BM_edge_other_vert(ed_pair_v2[0], e->v2); + BMEdge *e_other = (v1_other != v2_other) ? BM_edge_exists(v1_other, v2_other) : NULL; BM_edge_select_set(bm, ed_pair_v1[0], true); BM_edge_select_set(bm, ed_pair_v2[0], true); if (e_other) { |