Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-07-27 10:11:54 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-07-27 10:11:54 +0400
commit6b3abde8d46ec78aeb7d898f2642382172c3e844 (patch)
treeb89ccc24ec5be9fd1b0e656c5b18a4e597aee4a3 /source/blender/bmesh/operators/bmo_join_triangles.c
parenta0969adb4eb530654051e2240a990b350ae2323d (diff)
fix for joining face selection after recent api change, also bmo_join_triangles_exec() wasn't filling in its 'face' output slot.
Diffstat (limited to 'source/blender/bmesh/operators/bmo_join_triangles.c')
-rw-r--r--source/blender/bmesh/operators/bmo_join_triangles.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c
index 39f7b0953b1..30bf10e8065 100644
--- a/source/blender/bmesh/operators/bmo_join_triangles.c
+++ b/source/blender/bmesh/operators/bmo_join_triangles.c
@@ -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 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
BMIter iter, liter;
BMOIter siter;
- BMFace *f;
+ BMFace *f, *f_new;
BMLoop *l;
BMEdge *e;
BLI_array_declare(jedges);
@@ -315,7 +317,10 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
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 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
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);
}