[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55242] trunk/blender/source/blender: fix for minor glitch in recent addition to create faces from partial selections .

Campbell Barton ideasman42 at gmail.com
Wed Mar 13 15:54:47 CET 2013


Revision: 55242
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55242
Author:   campbellbarton
Date:     2013-03-13 14:54:47 +0000 (Wed, 13 Mar 2013)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
    trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
    trunk/blender/source/blender/editors/mesh/editmesh_tools.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c	2013-03-13 14:50:36 UTC (rev 55241)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c	2013-03-13 14:54:47 UTC (rev 55242)
@@ -157,8 +157,8 @@
 /**
  * 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])
 {

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2013-03-13 14:50:36 UTC (rev 55241)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2013-03-13 14:54:47 UTC (rev 55242)
@@ -1352,6 +1352,8 @@
 	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;

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2013-03-13 14:50:36 UTC (rev 55241)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2013-03-13 14:54:47 UTC (rev 55242)
@@ -1185,8 +1185,9 @@
 			     (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) {




More information about the Bf-blender-cvs mailing list