[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