[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42122] branches/bmesh/blender/source/ blender/bmesh: Adjust BMO_Get/ SetIndex syntax so that it can take element pointers directly

Andrew Wiggin ender79bl at gmail.com
Thu Nov 24 12:20:50 CET 2011


Revision: 42122
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42122
Author:   ender79
Date:     2011-11-24 11:20:48 +0000 (Thu, 24 Nov 2011)
Log Message:
-----------
Adjust BMO_Get/SetIndex syntax so that it can take element pointers directly

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h
    branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h	2011-11-24 09:26:19 UTC (rev 42121)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h	2011-11-24 11:20:48 UTC (rev 42122)
@@ -493,14 +493,16 @@
 	return NULL;
 }
 
-BM_INLINE void BMO_SetIndex(BMesh *bm, BMHeader *element, int index)
+BM_INLINE void BMO_SetIndex(BMesh *bm, const void *element, int index)
 {
-	element->flags[bm->stackdepth-1].index = index;
+	BMHeader *header = (BMHeader *)element;
+	header->flags[bm->stackdepth-1].index = index;
 }
 
-BM_INLINE int BMO_GetIndex(BMesh *bm, BMHeader *element)
+BM_INLINE int BMO_GetIndex(BMesh *bm, void *element)
 {
-	return element->flags[bm->stackdepth-1].index;
+	BMHeader *header = (BMHeader *)element;
+	return header->flags[bm->stackdepth-1].index;
 }
 
 #ifdef __cplusplus

Modified: branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c	2011-11-24 09:26:19 UTC (rev 42121)
+++ branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c	2011-11-24 11:20:48 UTC (rev 42122)
@@ -102,8 +102,8 @@
 		if (l->e != l2->e) {
 			/*set up data for figuring out the two sides of
 			  the splits*/
-			BMO_SetIndex(bm, &l2->e->head, BMO_GetIndex(bm, &l->e->head));
-			et = etags + BMO_GetIndex(bm, &l->e->head);
+			BMO_SetIndex(bm, l2->e, BMO_GetIndex(bm, l->e));
+			et = etags + BMO_GetIndex(bm, l->e);
 			
 			if (!et->newe1) {
 				et->newe1 = l2->e;
@@ -147,7 +147,7 @@
 			if (!BMO_TestFlag(bm, e, EDGE_SEAM))
 				continue;
 
-			et = etags + BMO_GetIndex(bm, &e->head);
+			et = etags + BMO_GetIndex(bm, e);
 			if (!et->tag && e->l) {
 				break;
 			}
@@ -164,7 +164,7 @@
 			v = i ? l->next->v : l->v;
 
 			while (1) {
-				et = etags + BMO_GetIndex(bm, &l->e->head);
+				et = etags + BMO_GetIndex(bm, l->e);
 				if (et->newe1 == l->e) {
 					if (et->newe1) {
 						BMO_SetFlag(bm, et->newe1, EDGE_RET1);
@@ -248,7 +248,7 @@
 	etags = MEM_callocN(sizeof(EdgeTag)*bm->totedge, "EdgeTag");
 	
 	BM_ITER_INDEX(e, &iter, bm, BM_EDGES_OF_MESH, NULL, i) {
-		BMO_SetIndex(bm, &e->head, i);
+		BMO_SetIndex(bm, e, i);
 	}
 
 #ifdef ETV
@@ -281,7 +281,7 @@
 			if (!BMO_TestFlag(bm, l->e, EDGE_SEAM)) {
 				if (!verts[i]) {
 
-					et = etags + BMO_GetIndex(bm, &l->e->head);
+					et = etags + BMO_GetIndex(bm, l->e);
 					if (ETV(et, l->v, l)) {
 						verts[i] = ETV(et, l->v, l);
 					}
@@ -336,7 +336,7 @@
 					} while (l3 != l2 && !BMO_TestFlag(bm, l3->e, EDGE_SEAM));
 
 					if (l3 == NULL || (BMO_TestFlag(bm, l3->e, EDGE_SEAM) && l3->e != l->e)) {
-						et = etags + BMO_GetIndex(bm, &l2->e->head);
+						et = etags + BMO_GetIndex(bm, l2->e);
 						if (ETV(et, v, l2) == NULL) {
 							v2 = BM_Make_Vert(bm, v->co, v);
 							
@@ -350,7 +350,7 @@
 								l3 = l3->radial_next;
 								l3 = BM_OtherFaceLoop(l3->e, l3->f, v);
 								
-								et = etags + BMO_GetIndex(bm, &l3->e->head);
+								et = etags + BMO_GetIndex(bm, l3->e);
 							} while (l3 != l2 && !BMO_TestFlag(bm, l3->e, EDGE_SEAM));
 						}
 						else {




More information about the Bf-blender-cvs mailing list