[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45005] trunk/blender/source/blender: bmesh inset: outset option

Campbell Barton ideasman42 at gmail.com
Mon Mar 19 22:40:17 CET 2012


Revision: 45005
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45005
Author:   campbellbarton
Date:     2012-03-19 21:40:17 +0000 (Mon, 19 Mar 2012)
Log Message:
-----------
bmesh inset: outset option

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_opdefines.c
    trunk/blender/source/blender/bmesh/operators/bmo_inset.c
    trunk/blender/source/blender/editors/mesh/bmesh_tools.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_opdefines.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_opdefines.c	2012-03-19 21:38:35 UTC (rev 45004)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_opdefines.c	2012-03-19 21:40:17 UTC (rev 45005)
@@ -1089,6 +1089,7 @@
 	 {BMO_OP_SLOT_BOOL, "use_even_offset"},
 	 {BMO_OP_SLOT_BOOL, "use_relative_offset"},
 	 {BMO_OP_SLOT_FLT, "thickness"},
+	 {BMO_OP_SLOT_BOOL, "use_outset"},
 	 {0} /* null-terminating sentine */},
 	bmo_inset_exec,
 	0

Modified: trunk/blender/source/blender/bmesh/operators/bmo_inset.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_inset.c	2012-03-19 21:38:35 UTC (rev 45004)
+++ trunk/blender/source/blender/bmesh/operators/bmo_inset.c	2012-03-19 21:40:17 UTC (rev 45005)
@@ -60,7 +60,8 @@
 
 void bmo_inset_exec(BMesh *bm, BMOperator *op)
 {
-	const int use_boundary        = BMO_slot_bool_get(op, "use_boundary");
+	const int use_outset          = BMO_slot_bool_get(op, "use_outset");
+	const int use_boundary        = BMO_slot_bool_get(op, "use_boundary") && (use_outset == FALSE);
 	const int use_even_offset     = BMO_slot_bool_get(op, "use_even_offset");
 	const int use_even_boundry    = use_even_offset; /* could make own option */
 	const int use_relative_offset = BMO_slot_bool_get(op, "use_relative_offset");
@@ -77,8 +78,14 @@
 	BMFace *f;
 	int i, j, k;
 
-	BM_mesh_elem_flag_disable_all(bm, BM_FACE, BM_ELEM_TAG);
-	BMO_slot_buffer_hflag_enable(bm, op, "faces", BM_FACE, BM_ELEM_TAG, FALSE);
+	if (use_outset == FALSE) {
+		BM_mesh_elem_flag_disable_all(bm, BM_FACE, BM_ELEM_TAG);
+		BMO_slot_buffer_hflag_enable(bm, op, "faces", BM_FACE, BM_ELEM_TAG, FALSE);
+	}
+	else {
+		BM_mesh_elem_flag_enable_all(bm, BM_FACE, BM_ELEM_TAG);
+		BMO_slot_buffer_hflag_disable(bm, op, "faces", BM_FACE, BM_ELEM_TAG, FALSE);
+	}
 
 	/* first count all inset edges we will split */
 	/* fill in array and initialize tagging */

Modified: trunk/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-19 21:38:35 UTC (rev 45004)
+++ trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-19 21:40:17 UTC (rev 45005)
@@ -4581,11 +4581,12 @@
 	const int use_boundary        = RNA_boolean_get(op->ptr, "use_boundary");
 	const int use_even_offset     = RNA_boolean_get(op->ptr, "use_even_offset");
 	const int use_relative_offset = RNA_boolean_get(op->ptr, "use_relative_offset");
-	const float thickness = RNA_float_get(op->ptr, "thickness");
+	const float thickness         = RNA_float_get(op->ptr, "thickness");
+	const int use_outset          = RNA_boolean_get(op->ptr, "use_outset");
 
 	EDBM_InitOpf(em, &bmop, op,
-	             "inset faces=%hf use_boundary=%b use_even_offset=%b use_relative_offset=%b thickness=%f",
-	             BM_ELEM_SELECT, use_boundary, use_even_offset, use_relative_offset, thickness);
+	             "inset faces=%hf use_boundary=%b use_even_offset=%b use_relative_offset=%b thickness=%f use_outset=%b",
+	             BM_ELEM_SELECT, use_boundary, use_even_offset, use_relative_offset, thickness, use_outset);
 
 	BMO_op_exec(em->bm, &bmop);
 
@@ -4629,4 +4630,6 @@
 	prop = RNA_def_float(ot->srna, "thickness", 0.01f, 0.0f, FLT_MAX, "thickness", "", 0.0f, 10.0f);
 	/* use 1 rather then 10 for max else dragging the button moves too far */
 	RNA_def_property_ui_range(prop, 0.0, 1.0, 0.01, 4);
+
+	RNA_def_boolean(ot->srna, "use_outset", FALSE, "Outset",  "outset rather then inset");
 }




More information about the Bf-blender-cvs mailing list