[Bf-blender-cvs] [f6c661a] master: BMesh: simplify join-tri's

Campbell Barton noreply at git.blender.org
Sat Jun 20 08:53:37 CEST 2015


Commit: f6c661a38f93500523e617b194ed350346d1830d
Author: Campbell Barton
Date:   Sat Jun 20 16:48:59 2015 +1000
Branches: master
https://developer.blender.org/rBf6c661a38f93500523e617b194ed350346d1830d

BMesh: simplify join-tri's

===================================================================

M	source/blender/bmesh/operators/bmo_join_triangles.c

===================================================================

diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c
index 841a68f..b873e6b 100644
--- a/source/blender/bmesh/operators/bmo_join_triangles.c
+++ b/source/blender/bmesh/operators/bmo_join_triangles.c
@@ -257,10 +257,8 @@ fail:
 
 
 #define EDGE_MARK	(1 << 0)
-#define EDGE_CHOSEN	(1 << 1)
 
 #define FACE_OUT (1 << 0)
-#define FACE_MARK	(1 << 1)
 #define FACE_INPUT	(1 << 2)
 
 void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
@@ -270,7 +268,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
 	BMIter iter;
 	BMOIter siter;
 	BMFace *f;
-	BMEdge *e, *e_next;
+	BMEdge *e;
 	/* data: edge-to-join, sort_value: error weight */
 	struct SortPointerByFloat *jedges;
 	unsigned i, totedge;
@@ -370,27 +368,8 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
 		f_b = e->l->radial_next->f;
 
 		/* check if another edge already claimed this face */
-		if ((BMO_elem_flag_test(bm, f_a, FACE_MARK) == false) &&
-		    (BMO_elem_flag_test(bm, f_b, FACE_MARK) == false))
-		{
-			BMO_elem_flag_enable(bm, f_a, FACE_MARK);
-			BMO_elem_flag_enable(bm, f_b, FACE_MARK);
-			BMO_elem_flag_enable(bm, e, EDGE_CHOSEN);
-		}
-	}
-
-	MEM_freeN(jedges);
-
-	/* join best weighted */
-	BM_ITER_MESH_MUTABLE (e, e_next, &iter, bm, BM_EDGES_OF_MESH) {
-		BMFace *f_new;
-		BMFace *f_a, *f_b;
-
-		if (!BMO_elem_flag_test(bm, e, EDGE_CHOSEN))
-			continue;
-
-		BM_edge_face_pair(e, &f_a, &f_b); /* checked above */
-		if ((f_a->len == 3 && f_b->len == 3)) {
+		if ((f_a->len == 3) && (f_b->len == 3)) {
+			BMFace *f_new;
 			f_new = BM_faces_join_pair(bm, f_a, f_b, e, true);
 			if (f_new) {
 				BMO_elem_flag_enable(bm, f_new, FACE_OUT);
@@ -398,5 +377,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
 		}
 	}
 
+	MEM_freeN(jedges);
+
 	BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "faces.out", BM_FACE, FACE_OUT);
 }




More information about the Bf-blender-cvs mailing list