[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