[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45538] trunk/blender: code cleanup: mselect conversion when creating a bmesh from a bmesh was overly verbose.

Campbell Barton ideasman42 at gmail.com
Wed Apr 11 13:22:20 CEST 2012


Revision: 45538
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45538
Author:   campbellbarton
Date:     2012-04-11 11:22:19 +0000 (Wed, 11 Apr 2012)
Log Message:
-----------
code cleanup: mselect conversion when creating a bmesh from a bmesh was overly verbose.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
    trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_userpref.py	2012-04-11 10:35:09 UTC (rev 45537)
+++ trunk/blender/release/scripts/startup/bl_ui/space_userpref.py	2012-04-11 11:22:19 UTC (rev 45538)
@@ -1122,6 +1122,10 @@
                         split = colsub.row().split(percentage=0.15)
                         split.label(text="Location:")
                         split.label(text=info["location"])
+                    if mod:
+                        split = colsub.row().split(percentage=0.15)
+                        split.label(text="File:")
+                        split.label(text=mod.__file__)
                     if info["author"]:
                         split = colsub.row().split(percentage=0.15)
                         split.label(text="Author:")

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c	2012-04-11 10:35:09 UTC (rev 45537)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c	2012-04-11 11:22:19 UTC (rev 45538)
@@ -317,56 +317,39 @@
 	}
 
 	if (me->mselect && me->totselect != 0) {
-		BMIter iter;
-		BMVert *vertex;
-		BMEdge *edge;
-		BMFace *face;
-		BMVert **vertex_array = MEM_callocN(sizeof(BMVert *) * bm->totvert,
-		                                    "Selection Conversion Vertex Pointer Array");
+
+		BMVert **vert_array = MEM_callocN(sizeof(BMVert *) * bm->totvert,
+		                                  "Selection Conversion Vertex Pointer Array");
 		BMEdge **edge_array = MEM_callocN(sizeof(BMEdge *) * bm->totedge,
 		                                  "Selection Conversion Edge Pointer Array");
 		BMFace **face_array = MEM_callocN(sizeof(BMFace *) * bm->totface,
 		                                  "Selection Conversion Face Pointer Array");
 
-		for (i = 0, vertex = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
-		     vertex;
-		     i++, vertex = BM_iter_step(&iter))
-		{
-			vertex_array[i] = vertex;
-		}
+		BMIter  iter;
+		BMVert  *vert;
+		BMEdge  *edge;
+		BMFace  *face;
+		MSelect *msel;
 
-		for (i = 0, edge = BM_iter_new(&iter, bm, BM_EDGES_OF_MESH, NULL);
-		     edge;
-		     i++, edge = BM_iter_step(&iter))
-		{
-			edge_array[i] = edge;
-		}
+		BM_ITER_INDEX(vert, &iter, bm, BM_VERTS_OF_MESH, NULL, i) { vert_array[i] = vert; }
+		BM_ITER_INDEX(edge, &iter, bm, BM_EDGES_OF_MESH, NULL, i) { edge_array[i] = edge; }
+		BM_ITER_INDEX(face, &iter, bm, BM_FACES_OF_MESH, NULL, i) { face_array[i] = face; }
 
-		for (i = 0, face = BM_iter_new(&iter, bm, BM_FACES_OF_MESH, NULL);
-		     face;
-		     i++, face = BM_iter_step(&iter))
-		{
-			face_array[i] = face;
-		}
-
-		if (me->mselect) {
-			for (i = 0; i < me->totselect; i++) {
-				if (me->mselect[i].type == ME_VSEL) {
-					BM_select_history_store(bm, (BMElem *)vertex_array[me->mselect[i].index]);
-				}
-				else if (me->mselect[i].type == ME_ESEL) {
-					BM_select_history_store(bm, (BMElem *)edge_array[me->mselect[i].index]);
-				}
-				else if (me->mselect[i].type == ME_FSEL) {
-					BM_select_history_store(bm, (BMElem *)face_array[me->mselect[i].index]);
-				}
+		for (i = 0, msel = me->mselect; i < me->totselect; i++, msel++) {
+			switch (msel->type) {
+				case ME_VSEL:
+					BM_select_history_store(bm, (BMElem *)vert_array[msel->index]);
+					break;
+				case ME_ESEL:
+					BM_select_history_store(bm, (BMElem *)edge_array[msel->index]);
+					break;
+				case ME_FSEL:
+					BM_select_history_store(bm, (BMElem *)face_array[msel->index]);
+					break;
 			}
 		}
-		else {
-			me->totselect = 0;
-		}
 
-		MEM_freeN(vertex_array);
+		MEM_freeN(vert_array);
 		MEM_freeN(edge_array);
 		MEM_freeN(face_array);
 	}




More information about the Bf-blender-cvs mailing list