[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44083] branches/bmesh/blender/source/ blender: Minor API Edits.

Campbell Barton ideasman42 at gmail.com
Mon Feb 13 07:59:33 CET 2012


Revision: 44083
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44083
Author:   campbellbarton
Date:     2012-02-13 06:59:25 +0000 (Mon, 13 Feb 2012)
Log Message:
-----------
Minor API Edits.

added BM_mesh_elem_flag_enable_all (only had disable function), and add
argunt for vert/edge/face type.

use these functions from EDBM_flag_enable/disable_all (had duplicate
code).

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_marking.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_subdivide.c
    branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
    branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_marking.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_marking.h	2012-02-13 05:59:14 UTC (rev 44082)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_marking.h	2012-02-13 06:59:25 UTC (rev 44083)
@@ -47,7 +47,8 @@
  * chuck it.*/
 int BM_elem_select_test(BMesh *bm, const void *element);
 
-void BM_mesh_flag_disable_all(BMesh *bm, const char hflag);
+void BM_mesh_elem_flag_enable_all(BMesh *bm, const char htype, const char hflag);
+void BM_mesh_elem_flag_disable_all(BMesh *bm, const char htype, const char hflag);
 
 /* individual element select functions, BM_elem_select_set is a shortcut for these
  * that automatically detects which one to use*/

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2012-02-13 05:59:14 UTC (rev 44082)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2012-02-13 06:59:25 UTC (rev 44083)
@@ -754,7 +754,7 @@
 	}
 }
 
-void BM_mesh_flag_disable_all(BMesh *bm, const char hflag)
+void BM_mesh_elem_flag_disable_all(BMesh *bm, const char htype, const char hflag)
 {
 	const char iter_types[3] = {BM_VERTS_OF_MESH,
 	                            BM_EDGES_OF_MESH,
@@ -768,15 +768,44 @@
 	}
 
 	for (i = 0; i < 3; i++) {
-		ele = BM_iter_new(&iter, bm, iter_types[i], NULL);
-		for ( ; ele; ele = BM_iter_step(&iter)) {
-			if (hflag & BM_ELEM_SELECT) BM_elem_select_set(bm, ele, FALSE);
-			BM_elem_flag_disable(ele, hflag);
+		if (htype & iter_types[i]) {
+			ele = BM_iter_new(&iter, bm, iter_types[i], NULL);
+			for ( ; ele; ele = BM_iter_step(&iter)) {
+				if (hflag & BM_ELEM_SELECT) {
+					BM_elem_select_set(bm, ele, FALSE);
+				}
+				BM_elem_flag_disable(ele, hflag);
+			}
 		}
 	}
 }
 
+void BM_mesh_elem_flag_enable_all(BMesh *bm, const char htype, const char hflag)
+{
+	const char iter_types[3] = {BM_VERTS_OF_MESH,
+	                            BM_EDGES_OF_MESH,
+	                            BM_FACES_OF_MESH};
+	BMIter iter;
+	BMHeader *ele;
+	int i;
 
+	if (hflag & BM_ELEM_SELECT) {
+		BM_select_history_clear(bm);
+	}
+
+	for (i = 0; i < 3; i++) {
+		if (htype & iter_types[i]) {
+			ele = BM_iter_new(&iter, bm, iter_types[i], NULL);
+			for ( ; ele; ele = BM_iter_step(&iter)) {
+				if (hflag & BM_ELEM_SELECT) {
+					BM_elem_select_set(bm, ele, TRUE);
+				}
+				BM_elem_flag_enable(ele, hflag);
+			}
+		}
+	}
+}
+
 /***************** Mesh Hiding stuff *********** */
 
 #define BM_ELEM_HIDE_SET(ele, hide) \

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_subdivide.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-02-13 05:59:14 UTC (rev 44082)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-02-13 06:59:25 UTC (rev 44083)
@@ -1044,8 +1044,8 @@
 		BMHeader *ele;
 		// int i;
 		
-		/* deselect inpu */
-		BM_mesh_flag_disable_all(bm, BM_ELEM_SELECT);
+		/* deselect input */
+		BM_mesh_elem_flag_disable_all(bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT);
 
 		ele = BMO_iter_new(&iter, bm, &op, "outinner", BM_EDGE|BM_VERT);
 		for ( ; ele; ele = BMO_iter_step(&iter)) {

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c	2012-02-13 05:59:14 UTC (rev 44082)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c	2012-02-13 06:59:25 UTC (rev 44083)
@@ -3563,7 +3563,7 @@
 
 	EDBM_InitOpf(em, &bmop, op, "split geom=%hvef", BM_ELEM_SELECT);
 	BMO_op_exec(em->bm, &bmop);
-	BM_mesh_flag_disable_all(em->bm, BM_ELEM_SELECT);
+	BM_mesh_elem_flag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT);
 	BMO_slot_buffer_hflag_enable(em->bm, &bmop, "geomout", BM_ELEM_SELECT, BM_ALL);
 	if (!EDBM_FinishOp(em, &bmop, op, TRUE)) {
 		return OPERATOR_CANCELLED;

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2012-02-13 05:59:14 UTC (rev 44082)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2012-02-13 06:59:25 UTC (rev 44083)
@@ -468,44 +468,12 @@
 
 void EDBM_flag_disable_all(BMEditMesh *em, const char hflag)
 {
-	const char iter_types[3] = {BM_VERTS_OF_MESH,
-	                            BM_EDGES_OF_MESH,
-	                            BM_FACES_OF_MESH};
-	BMIter iter;
-	BMHeader *ele;
-	int i;
-
-	if (hflag & BM_ELEM_SELECT)
-		BM_select_history_clear(em->bm);
-
-	for (i = 0; i < 3; i++) {
-		BM_ITER(ele, &iter, em->bm, iter_types[i], NULL) {
-			if (hflag & BM_ELEM_SELECT) BM_elem_select_set(em->bm, ele, FALSE);
-			BM_elem_flag_disable(ele, hflag);
-		}
-	}
+	BM_mesh_elem_flag_disable_all(em->bm, BM_VERT|BM_EDGE|BM_FACE, hflag);
 }
 
 void EDBM_flag_enable_all(BMEditMesh *em, const char hflag)
 {
-	const char iter_types[3] = {BM_VERTS_OF_MESH,
-	                            BM_EDGES_OF_MESH,
-	                            BM_FACES_OF_MESH};
-	BMIter iter;
-	BMHeader *ele;
-	int i;
-
-	for (i = 0; i < 3; i++) {
-		ele = BM_iter_new(&iter, em->bm, iter_types[i], NULL);
-		for ( ; ele; ele = BM_iter_step(&iter)) {
-			if (hflag & BM_ELEM_SELECT) {
-				BM_elem_select_set(em->bm, ele, TRUE);
-			}
-			else {
-				BM_elem_flag_enable(ele, hflag);
-			}
-		}
-	}
+	BM_mesh_elem_flag_enable_all(em->bm, BM_VERT|BM_EDGE|BM_FACE, hflag);
 }
 
 /**************-------------- Undo ------------*****************/




More information about the Bf-blender-cvs mailing list