[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43961] branches/bmesh/blender/source/ blender/bmesh/intern/bmesh_newcore.c: internal change to bmesh_jfke():
Campbell Barton
ideasman42 at gmail.com
Tue Feb 7 17:45:17 CET 2012
Revision: 43961
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43961
Author: campbellbarton
Date: 2012-02-07 16:45:05 +0000 (Tue, 07 Feb 2012)
Log Message:
-----------
internal change to bmesh_jfke():
remove last use of BMFlagLayer.index, instead use a flag to tag the vertices.
this loops over face loops too less times as well.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c 2012-02-07 16:24:36 UTC (rev 43960)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c 2012-02-07 16:45:05 UTC (rev 43961)
@@ -1567,35 +1567,26 @@
/* validate no internal join */
for (i = 0, curloop = BM_FACE_FIRST_LOOP(f1); i < f1len; i++, curloop = curloop->next) {
- bmesh_api_setindex(curloop->v, 0);
+ BM_ClearHFlag(curloop->v, BM_TMP_TAG);
}
for (i = 0, curloop = BM_FACE_FIRST_LOOP(f2); i < f2len; i++, curloop = curloop->next) {
- bmesh_api_setindex(curloop->v, 0);
+ BM_ClearHFlag(curloop->v, BM_TMP_TAG);
}
for (i = 0, curloop = BM_FACE_FIRST_LOOP(f1); i < f1len; i++, curloop = curloop->next) {
if (curloop != f1loop) {
- bmesh_api_setindex(curloop->v, bmesh_api_getindex(curloop->v) + 1);
+ BM_SetHFlag(curloop->v, BM_TMP_TAG);
}
}
for (i = 0, curloop = BM_FACE_FIRST_LOOP(f2); i < f2len; i++, curloop = curloop->next) {
if (curloop != f2loop) {
- bmesh_api_setindex(curloop->v, bmesh_api_getindex(curloop->v) + 1);
+ /* as soon as a duplicate is found, bail out */
+ if (BM_TestHFlag(curloop->v, BM_TMP_TAG)) {
+ return NULL;
+ }
}
}
- for (i = 0, curloop = BM_FACE_FIRST_LOOP(f1); i < f1len; i++, curloop = curloop->next) {
- if (bmesh_api_getindex(curloop->v) > 1) {
- return NULL;
- }
- }
-
- for (i = 0, curloop = BM_FACE_FIRST_LOOP(f2); i < f2len; i++, curloop = curloop->next) {
- if (bmesh_api_getindex(curloop->v) > 1) {
- return NULL;
- }
- }
-
/* join the two loop */
f1loop->prev->next = f2loop->next;
f2loop->next->prev = f1loop->prev;
More information about the Bf-blender-cvs
mailing list