[Bf-blender-cvs] [652eaf7] master: Fix for mesh-inset modifying hidden faces

Campbell Barton noreply at git.blender.org
Wed Sep 10 08:22:15 CEST 2014


Commit: 652eaf7723de34b7b717a7fe2fb4a5757614fb0a
Author: Campbell Barton
Date:   Wed Sep 10 16:02:24 2014 +1000
Branches: master
https://developer.blender.org/rB652eaf7723de34b7b717a7fe2fb4a5757614fb0a

Fix for mesh-inset modifying hidden faces

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

M	source/blender/bmesh/intern/bmesh_opdefines.c
M	source/blender/bmesh/operators/bmo_inset.c
M	source/blender/editors/mesh/editmesh_inset.c

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

diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c
index 74bd911..d8be55c 100644
--- a/source/blender/bmesh/intern/bmesh_opdefines.c
+++ b/source/blender/bmesh/intern/bmesh_opdefines.c
@@ -1795,6 +1795,7 @@ static BMOpDefine bmo_inset_region_def = {
 	"inset_region",
 	/* slots_in */
 	{{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},    /* input faces */
+	 {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
 	 {"use_boundary", BMO_OP_SLOT_BOOL},
 	 {"use_even_offset", BMO_OP_SLOT_BOOL},
 	 {"use_interpolate", BMO_OP_SLOT_BOOL},
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c
index d1d7129..1b72a31 100644
--- a/source/blender/bmesh/operators/bmo_inset.c
+++ b/source/blender/bmesh/operators/bmo_inset.c
@@ -587,6 +587,7 @@ void bmo_inset_region_exec(BMesh *bm, BMOperator *op)
 	else {
 		BM_mesh_elem_hflag_enable_all(bm, BM_FACE, BM_ELEM_TAG, false);
 		BMO_slot_buffer_hflag_disable(bm, op->slots_in, "faces", BM_FACE, BM_ELEM_TAG, false);
+		BMO_slot_buffer_hflag_disable(bm, op->slots_in, "faces_exclude", BM_FACE, BM_ELEM_TAG, false);
 	}
 
 	/* first count all inset edges we will split */
diff --git a/source/blender/editors/mesh/editmesh_inset.c b/source/blender/editors/mesh/editmesh_inset.c
index a4942d0..a90a002 100644
--- a/source/blender/editors/mesh/editmesh_inset.c
+++ b/source/blender/editors/mesh/editmesh_inset.c
@@ -214,17 +214,21 @@ static bool edbm_inset_calc(wmOperator *op)
 
 	if (use_individual) {
 		EDBM_op_init(em, &bmop, op,
-		             "inset_individual faces=%hf use_even_offset=%b  use_relative_offset=%b"
+		             "inset_individual faces=%hf use_even_offset=%b  use_relative_offset=%b "
 		             "use_interpolate=%b thickness=%f depth=%f",
 		             BM_ELEM_SELECT, use_even_offset, use_relative_offset, use_interpolate,
 		             thickness, depth);
 	}
 	else {
 		EDBM_op_init(em, &bmop, op,
-		             "inset_region faces=%hf use_boundary=%b use_even_offset=%b use_relative_offset=%b"
-		             " use_interpolate=%b thickness=%f depth=%f use_outset=%b use_edge_rail=%b",
+		             "inset_region faces=%hf use_boundary=%b use_even_offset=%b use_relative_offset=%b "
+		             "use_interpolate=%b thickness=%f depth=%f use_outset=%b use_edge_rail=%b",
 		             BM_ELEM_SELECT, use_boundary, use_even_offset, use_relative_offset, use_interpolate,
 		             thickness, depth, use_outset, use_edge_rail);
+
+		if (use_outset) {
+			BMO_slot_buffer_from_enabled_hflag(em->bm, &bmop, bmop.slots_in, "faces_exclude", BM_FACE, BM_ELEM_HIDDEN);
+		}
 	}
 	BMO_op_exec(em->bm, &bmop);




More information about the Bf-blender-cvs mailing list