[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44361] trunk/blender/source/blender/bmesh : bmesh minor api refactor

Campbell Barton ideasman42 at gmail.com
Thu Feb 23 10:26:54 CET 2012


Revision: 44361
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44361
Author:   campbellbarton
Date:     2012-02-23 09:26:53 +0000 (Thu, 23 Feb 2012)
Log Message:
-----------
bmesh minor api refactor
* BM_vert_in_face now loops over a vert's faces rather then every vert in the face.
* rename bmesh_radial_find_first_facevert --> bmesh_radial_find_first_faceloop
* rename bmesh_radial_find_next_facevert --> bmesh_radial_find_next_faceloop
* rename BM_vert_collapse_edges --> BM_vert_collapse_edge (only collapses one)

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/bmesh.h
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
    trunk/blender/source/blender/bmesh/intern/bmesh_mods.c
    trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
    trunk/blender/source/blender/bmesh/intern/bmesh_structure.c
    trunk/blender/source/blender/bmesh/intern/bmesh_structure.h
    trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c
    trunk/blender/source/blender/bmesh/tools/BME_bevel.c

Modified: trunk/blender/source/blender/bmesh/bmesh.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh.h	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/bmesh.h	2012-02-23 09:26:53 UTC (rev 44361)
@@ -216,7 +216,7 @@
 
 /* these 2 functions are very similar */
 BMEdge* BM_vert_collapse_faces(BMesh *bm, BMEdge *ke, BMVert *kv, float fac, const int join_faces);
-BMEdge* BM_vert_collapse_edges(BMesh *bm, BMEdge *ke, BMVert *kv);
+BMEdge* BM_vert_collapse_edge(BMesh *bm, BMEdge *ke, BMVert *kv);
 
 
 /* splits an edge.  ne is set to the new edge created. */

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c	2012-02-23 09:26:53 UTC (rev 44361)
@@ -200,7 +200,7 @@
 	if (iter->count) {
 		iter->firstedge = bmesh_disk_find_first_faceedge(iter->vdata->e, iter->vdata);
 		iter->nextedge = iter->firstedge;
-		iter->firstloop = bmesh_radial_find_first_facevert(iter->firstedge->l, iter->vdata);
+		iter->firstloop = bmesh_radial_find_first_faceloop(iter->firstedge->l, iter->vdata);
 		iter->nextloop = iter->firstloop;
 	}
 }
@@ -210,10 +210,10 @@
 
 	if (iter->count && iter->nextloop) {
 		iter->count--;
-		iter->nextloop = bmesh_radial_find_next_facevert(iter->nextloop, iter->vdata);
+		iter->nextloop = bmesh_radial_find_next_faceloop(iter->nextloop, iter->vdata);
 		if (iter->nextloop == iter->firstloop) {
 			iter->nextedge = bmesh_disk_find_next_faceedge(iter->nextedge, iter->vdata);
-			iter->firstloop = bmesh_radial_find_first_facevert(iter->nextedge->l, iter->vdata);
+			iter->firstloop = bmesh_radial_find_first_faceloop(iter->nextedge->l, iter->vdata);
 			iter->nextloop = iter->firstloop;
 		}
 	}
@@ -238,7 +238,7 @@
 	if (iter->count) {
 		iter->firstedge = bmesh_disk_find_first_faceedge(iter->vdata->e, iter->vdata);
 		iter->nextedge = iter->firstedge;
-		iter->firstloop = bmesh_radial_find_first_facevert(iter->firstedge->l, iter->vdata);
+		iter->firstloop = bmesh_radial_find_first_faceloop(iter->firstedge->l, iter->vdata);
 		iter->nextloop = iter->firstloop;
 	}
 }
@@ -248,10 +248,10 @@
 
 	if (iter->count) {
 		iter->count--;
-		iter->nextloop = bmesh_radial_find_next_facevert(iter->nextloop, iter->vdata);
+		iter->nextloop = bmesh_radial_find_next_faceloop(iter->nextloop, iter->vdata);
 		if (iter->nextloop == iter->firstloop) {
 			iter->nextedge = bmesh_disk_find_next_faceedge(iter->nextedge, iter->vdata);
-			iter->firstloop = bmesh_radial_find_first_facevert(iter->nextedge->l, iter->vdata);
+			iter->firstloop = bmesh_radial_find_first_faceloop(iter->nextedge->l, iter->vdata);
 			iter->nextloop = iter->firstloop;
 		}
 	}

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_mods.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-23 09:26:53 UTC (rev 44361)
@@ -307,7 +307,7 @@
 	BMLoop *nl;
 	BMFace *face;
 
-	/* be warned: this can do weird things in some ngon situation, see BM_LegalSplit */
+	/* be warned: this can do weird things in some ngon situation, see BM_face_legal_splits */
 	for (face = BM_iter_new(&iter, bm, BM_FACES_OF_VERT, v1); face; face = BM_iter_step(&iter)) {
 		for (v = BM_iter_new(&iter2, bm, BM_VERTS_OF_FACE, face); v; v = BM_iter_step(&iter2)) {
 			if (v == v2) {
@@ -344,7 +344,9 @@
 {
 	const int has_mdisp = CustomData_has_layer(&bm->ldata, CD_MDISPS);
 	BMFace *nf, *of;
-	
+
+	BLI_assert(v1 != v2);
+
 	/* do we have a multires layer */
 	if (has_mdisp) {
 		of = BM_face_copy(bm, f, FALSE, FALSE);
@@ -397,7 +399,7 @@
  *
  *  Note that this is not a general edge collapse function.
  *
- * Note this function is very close to 'BM_vert_collapse_edges', both collapse
+ * Note this function is very close to 'BM_vert_collapse_edge', both collapse
  * a vertex and return a new edge. Except this takes a factor and merges
  * custom data.
  *
@@ -476,7 +478,7 @@
 	}
 
 	/* single face or no faces */
-	/* same as BM_vert_collapse_edges() however we already
+	/* same as BM_vert_collapse_edge() however we already
 	 * have vars to perform this operation so dont call. */
 	bmesh_jekv(bm, ke, kv);
 	ne = BM_edge_exists(tv, tv2);
@@ -486,7 +488,7 @@
 
 
 /**
- *			BM_vert_collapse_edges
+ *			BM_vert_collapse_edge
  *
  * Collapses a vertex onto another vertex it shares an edge with.
  *
@@ -494,7 +496,7 @@
  * The New Edge
  */
 
-BMEdge *BM_vert_collapse_edges(BMesh *bm, BMEdge *ke, BMVert *kv)
+BMEdge *BM_vert_collapse_edge(BMesh *bm, BMEdge *ke, BMVert *kv)
 {
 	/* nice example implimentation but we want loops to have their customdata
 	 * accounted for */

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-02-23 09:26:53 UTC (rev 44361)
@@ -101,26 +101,7 @@
 
 int BM_vert_in_face(BMFace *f, BMVert *v)
 {
-	BMLoop *l_iter, *l_first;
-
-#ifdef USE_BMESH_HOLES
-	BMLoopList *lst;
-	for (lst = f->loops.first; lst; lst = lst->next)
-#endif
-	{
-#ifdef USE_BMESH_HOLES
-		l_iter = l_first = lst->first;
-#else
-		l_iter = l_first = f->l_first;
-#endif
-		do {
-			if (l_iter->v == v) {
-				return TRUE;
-			}
-		} while ((l_iter = l_iter->next) != l_first);
-	}
-
-	return FALSE;
+	return bmesh_radial_find_first_faceloop(BM_FACE_FIRST_LOOP(f), v) != NULL;
 }
 
 /*

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_structure.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_structure.c	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_structure.c	2012-02-23 09:26:53 UTC (rev 44361)
@@ -339,21 +339,21 @@
 /*****radial cycle functions, e.g. loops surrounding edges**** */
 int bmesh_radial_validate(int radlen, BMLoop *l)
 {
-	BMLoop *l2 = l;
+	BMLoop *l_iter = l;
 	int i = 0;
 	
 	if (bmesh_radial_length(l) != radlen)
 		return FALSE;
 
 	do {
-		if (!l2) {
+		if (!l_iter) {
 			bmesh_error();
 			return FALSE;
 		}
 		
-		if (l2->e != l->e)
+		if (l_iter->e != l->e)
 			return FALSE;
-		if (l2->v != l->e->v1 && l2->v != l->e->v2)
+		if (l_iter->v != l->e->v1 && l_iter->v != l->e->v2)
 			return FALSE;
 		
 		if (i > BM_LOOP_RADIAL_MAX) {
@@ -362,8 +362,7 @@
 		}
 		
 		i++;
-		l2 = l2->radial_next;
-	} while (l2 != l);
+	} while ((l_iter = bmesh_radial_nextloop(l_iter)) != l);
 
 	return TRUE;
 }
@@ -414,31 +413,27 @@
  * Finds the first loop of v around radial
  * cycle
  */
-BMLoop *bmesh_radial_find_first_facevert(BMLoop *l, BMVert *v)
+BMLoop *bmesh_radial_find_first_faceloop(BMLoop *l, BMVert *v)
 {
-	BMLoop *curloop;
-	curloop = l;
+	BMLoop *l_iter;
+	l_iter = l;
 	do {
-		if (curloop->v == v) {
-			return curloop;
+		if (l_iter->v == v) {
+			return l_iter;
 		}
-
-		curloop = bmesh_radial_nextloop(curloop);
-	} while (curloop != l);
+	} while ((l_iter = bmesh_radial_nextloop(l_iter)) != l);
 	return NULL;
 }
 
-BMLoop *bmesh_radial_find_next_facevert(BMLoop *l, BMVert *v)
+BMLoop *bmesh_radial_find_next_faceloop(BMLoop *l, BMVert *v)
 {
-	BMLoop *curloop;
-	curloop = bmesh_radial_nextloop(l);
+	BMLoop *l_iter;
+	l_iter = bmesh_radial_nextloop(l);
 	do {
-		if (curloop->v == v) {
-			return curloop;
+		if (l_iter->v == v) {
+			return l_iter;
 		}
-
-		curloop = bmesh_radial_nextloop(curloop);
-	} while (curloop != l);
+	} while ((l_iter = bmesh_radial_nextloop(l_iter)) != l);
 	return l;
 }
 
@@ -520,13 +515,15 @@
 
 int bmesh_radial_count_facevert(BMLoop *l, BMVert *v)
 {
-	BMLoop *curloop;
+	BMLoop *l_iter;
 	int count = 0;
-	curloop = l;
+	l_iter = l;
 	do {
-		if (curloop->v == v) count++;
-		curloop = bmesh_radial_nextloop(curloop);
-	} while (curloop != l);
+		if (l_iter->v == v) {
+			count++;
+		}
+	} while ((l_iter = bmesh_radial_nextloop(l_iter)) != l);
+
 	return count;
 }
 
@@ -918,10 +915,6 @@
 }
 
 /* end disk cycle routine */
-BMLoop *bmesh_radial_nextloop(BMLoop *l)
-{
-	return l->radial_next;
-}
 
 void bmesh_radial_append(BMEdge *e, BMLoop *l)
 {
@@ -1017,7 +1010,7 @@
  * cycle
  *
  */
-BMLoop *bmesh_radial_find_first_facevert(BMLoop *l, BMVert *v)
+BMLoop *bmesh_radial_find_first_faceloop(BMLoop *l, BMVert *v)
 {
 	BMLoop *curloop;
 	curloop = l;
@@ -1031,7 +1024,7 @@
 	return NULL;
 }
 
-BMLoop *bmesh_radial_find_next_facevert(BMLoop *l, BMVert *v)
+BMLoop *bmesh_radial_find_next_faceloop(BMLoop *l, BMVert *v)
 {
 	BMLoop *curloop;
 	curloop = bmesh_radial_nextloop(l);

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_structure.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_structure.h	2012-02-23 09:23:29 UTC (rev 44360)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_structure.h	2012-02-23 09:26:53 UTC (rev 44361)
@@ -43,7 +43,7 @@
 
 void remove_loop_radial_link(BMLoop *l);
 
-/*DOUBLE CIRCULAR LINKED LIST FUNCTIONS*/
+/* DOUBLE CIRCULAR LINKED LIST FUNCTIONS */
 void bmesh_cycle_append(void *h, void *nt);
 int bmesh_cycle_remove(void *h, void *remn);
 int bmesh_cycle_validate(int len, void *h);
@@ -52,7 +52,7 @@
 /* LOOP CYCLE MANAGEMENT */
 int bmesh_loop_validate(BMFace *f);
 
-/*DISK CYCLE MANAGMENT*/
+/* DISK CYCLE MANAGMENT */
 int bmesh_disk_append_edge(struct BMEdge *e, struct BMVert *v);
 void bmesh_disk_remove_edge(struct BMEdge *e, struct BMVert *v);
 struct BMEdge *bmesh_disk_nextedge(struct BMEdge *e, struct BMVert *v);
@@ -61,17 +61,17 @@
 struct BMEdge *bmesh_disk_find_first_faceedge(struct BMEdge *e, struct BMVert *v);
 struct BMEdge *bmesh_disk_find_next_faceedge(struct BMEdge *e, struct BMVert *v);
 
-/*RADIAL CYCLE MANAGMENT*/
+/* RADIAL CYCLE MANAGMENT */
 void bmesh_radial_append(struct BMEdge *e, struct BMLoop *l);
 void bmesh_radial_remove_loop(struct BMLoop *l, struct BMEdge *e);
 int bmesh_radial_find_face(struct BMEdge *e, struct BMFace *f);
 struct BMLoop *bmesh_radial_nextloop(struct BMLoop *l);
 int bmesh_radial_count_facevert(struct BMLoop *l, struct BMVert *v);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list