[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