[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58650] trunk/blender/source/blender: fix for joining face selection after recent api change, also bmo_join_triangles_exec() wasn't filling in its 'face' output slot.

Campbell Barton ideasman42 at gmail.com
Sat Jul 27 08:11:54 CEST 2013


Revision: 58650
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58650
Author:   campbellbarton
Date:     2013-07-27 06:11:54 +0000 (Sat, 27 Jul 2013)
Log Message:
-----------
fix for joining face selection after recent api change, also bmo_join_triangles_exec() wasn't filling in its 'face' output slot.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_join_triangles.c
    trunk/blender/source/blender/editors/mesh/editmesh_tools.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_join_triangles.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_join_triangles.c	2013-07-27 05:57:20 UTC (rev 58649)
+++ trunk/blender/source/blender/bmesh/operators/bmo_join_triangles.c	2013-07-27 06:11:54 UTC (rev 58650)
@@ -42,6 +42,8 @@
 
 #include "intern/bmesh_operators_private.h" /* own include */
 
+#define FACE_OUT (1 << 0)
+
 /* assumes edges are validated before reaching this poin */
 static float measure_facepair(const float v1[3], const float v2[3],
                               const float v3[3], const float v4[3], float limit)
@@ -212,7 +214,7 @@
 
 	BMIter iter, liter;
 	BMOIter siter;
-	BMFace *f;
+	BMFace *f, *f_new;
 	BMLoop *l;
 	BMEdge *e;
 	BLI_array_declare(jedges);
@@ -315,7 +317,10 @@
 
 
 		BM_edge_face_pair(e, &f1, &f2); /* checked above */
-		BM_faces_join_pair(bm, f1, f2, e, true);
+		f_new = BM_faces_join_pair(bm, f1, f2, e, true);
+		if (f_new) {
+			BMO_elem_flag_enable(bm, f_new, FACE_OUT);
+		}
 	}
 
 	BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
@@ -349,9 +354,14 @@
 				continue;
 			}
 
-			BM_faces_join_pair(bm, f1, f2, e, true);
+			f_new = BM_faces_join_pair(bm, f1, f2, e, true);
+			if (f_new) {
+				BMO_elem_flag_enable(bm, f_new, FACE_OUT);
+			}
 		}
 	}
 
 	BLI_array_free(jedges);
+
+	BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "faces.out", BM_FACE, FACE_OUT);
 }

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2013-07-27 05:57:20 UTC (rev 58649)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2013-07-27 06:11:54 UTC (rev 58650)
@@ -2945,9 +2945,11 @@
 	dovcols = RNA_boolean_get(op->ptr, "vcols");
 	domaterials = RNA_boolean_get(op->ptr, "materials");
 
-	if (!EDBM_op_callf(em, op,
-	                   "join_triangles faces=%hf limit=%f cmp_sharp=%b cmp_uvs=%b cmp_vcols=%b cmp_materials=%b",
-	                   BM_ELEM_SELECT, limit, dosharp, douvs, dovcols, domaterials))
+	if (!EDBM_op_call_and_selectf(
+	        em, op,
+	        "faces.out", true,
+	        "join_triangles faces=%hf limit=%f cmp_sharp=%b cmp_uvs=%b cmp_vcols=%b cmp_materials=%b",
+	        BM_ELEM_SELECT, limit, dosharp, douvs, dovcols, domaterials))
 	{
 		return OPERATOR_CANCELLED;
 	}




More information about the Bf-blender-cvs mailing list