[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54709] trunk/blender/source/blender/ blenlib: code cleanup: rename ScanFillVert.h --> edge_tot, SF_VERT_UNKNOWN --> SF_VERT_AVAILABLE

Campbell Barton ideasman42 at gmail.com
Thu Feb 21 18:15:55 CET 2013


Revision: 54709
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54709
Author:   campbellbarton
Date:     2013-02-21 17:15:55 +0000 (Thu, 21 Feb 2013)
Log Message:
-----------
code cleanup: rename ScanFillVert.h --> edge_tot, SF_VERT_UNKNOWN --> SF_VERT_AVAILABLE

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/BLI_scanfill.h
    trunk/blender/source/blender/blenlib/intern/scanfill.c

Modified: trunk/blender/source/blender/blenlib/BLI_scanfill.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_scanfill.h	2013-02-21 17:15:19 UTC (rev 54708)
+++ trunk/blender/source/blender/blenlib/BLI_scanfill.h	2013-02-21 17:15:55 UTC (rev 54709)
@@ -72,7 +72,8 @@
 	float xy[2]; /* 2D copy of vertex location (using dominant axis) */
 	unsigned int keyindex; /* original index #, for restoring  key information */
 	short poly_nr;
-	unsigned char f, h;
+	unsigned char edge_tot;  /* number of edges using this vertex */
+	unsigned char f;
 } ScanFillVert;
 
 typedef struct ScanFillEdge {

Modified: trunk/blender/source/blender/blenlib/intern/scanfill.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/scanfill.c	2013-02-21 17:15:19 UTC (rev 54708)
+++ trunk/blender/source/blender/blenlib/intern/scanfill.c	2013-02-21 17:15:55 UTC (rev 54709)
@@ -95,7 +95,7 @@
 
 #define SF_EPSILON   0.00003f
 
-#define SF_VERT_UNKNOWN  1    /* TODO, what is this for exactly? - need to document it! */
+#define SF_VERT_AVAILABLE  1  /* available - in an edge */
 #define SF_VERT_ZERO_LEN 255
 
 /* Optionally set ScanFillEdge f to this to mark original boundary edges.
@@ -424,7 +424,7 @@
 	ScanFillEdge *eed, *ed1;
 
 	for (eve = sf_ctx->fillvertbase.first; eve; eve = eve->next) {
-		if (eve->h == 1) {
+		if (eve->edge_tot == 1) {
 			/* find the edge which has vertex eve,
 			 * note: we _know_ this will crash if 'ed1' becomes NULL
 			 * but this will never happen. */
@@ -444,14 +444,14 @@
 				if (eve != eed->v1 && eve != eed->v2 && eve->poly_nr == eed->poly_nr) {
 					if (compare_v3v3(eve->co, eed->v1->co, SF_EPSILON)) {
 						ed1->v2 = eed->v1;
-						eed->v1->h++;
-						eve->h = 0;
+						eed->v1->edge_tot++;
+						eve->edge_tot = 0;
 						break;
 					}
 					else if (compare_v3v3(eve->co, eed->v2->co, SF_EPSILON)) {
 						ed1->v2 = eed->v2;
-						eed->v2->h++;
-						eve->h = 0;
+						eed->v2->edge_tot++;
+						eve->edge_tot = 0;
 						break;
 					}
 					else {
@@ -465,7 +465,7 @@
 								ed1->f = 0;
 								ed1->poly_nr = eed->poly_nr;
 								eed->v1 = eve;
-								eve->h = 3;
+								eve->edge_tot = 3;
 								break;
 							}
 						}
@@ -646,14 +646,14 @@
 		ed1 = sc->edge_first;
 		while (ed1) {   /* set connectflags  */
 			nexted = ed1->next;
-			if (ed1->v1->h == 1 || ed1->v2->h == 1) {
+			if (ed1->v1->edge_tot == 1 || ed1->v2->edge_tot == 1) {
 				BLI_remlink((ListBase *)&(sc->edge_first), ed1);
 				BLI_addtail(&sf_ctx->filledgebase, ed1);
-				if (ed1->v1->h > 1) ed1->v1->h--;
-				if (ed1->v2->h > 1) ed1->v2->h--;
+				if (ed1->v1->edge_tot > 1) ed1->v1->edge_tot--;
+				if (ed1->v2->edge_tot > 1) ed1->v2->edge_tot--;
 			}
 			else {
-				ed1->v2->f = SF_VERT_UNKNOWN;
+				ed1->v2->f = SF_VERT_AVAILABLE;
 			}
 
 			ed1 = nexted;
@@ -674,8 +674,8 @@
 				/* printf("just 1 edge to vert\n"); */
 				BLI_addtail(&sf_ctx->filledgebase, ed1);
 				ed1->v2->f = 0;
-				ed1->v1->h--; 
-				ed1->v2->h--;
+				ed1->v1->edge_tot--;
+				ed1->v2->edge_tot--;
 			}
 			else {
 				/* test rest of vertices */
@@ -742,10 +742,10 @@
 					ed3 = BLI_scanfill_edge_add(sf_ctx, v2, best_sc->vert);
 					BLI_remlink(&sf_ctx->filledgebase, ed3);
 					BLI_insertlinkbefore((ListBase *)&(sc->edge_first), ed2, ed3);
-					ed3->v2->f = SF_VERT_UNKNOWN;
+					ed3->v2->f = SF_VERT_AVAILABLE;
 					ed3->f = SF_EDGE_UNKNOWN;
-					ed3->v1->h++; 
-					ed3->v2->h++;
+					ed3->v1->edge_tot++;
+					ed3->v2->edge_tot++;
 				}
 				else {
 					/* new triangle */
@@ -755,31 +755,31 @@
 					BLI_remlink((ListBase *)&(sc->edge_first), ed1);
 					BLI_addtail(&sf_ctx->filledgebase, ed1);
 					ed1->v2->f = 0;
-					ed1->v1->h--; 
-					ed1->v2->h--;
+					ed1->v1->edge_tot--;
+					ed1->v2->edge_tot--;
 					/* ed2 can be removed when it's a boundary edge */
 					if ((ed2->f == 0 && twoconnected) || (ed2->f == SF_EDGE_BOUNDARY)) {
 						BLI_remlink((ListBase *)&(sc->edge_first), ed2);
 						BLI_addtail(&sf_ctx->filledgebase, ed2);
 						ed2->v2->f = 0;
-						ed2->v1->h--; 
-						ed2->v2->h--;
+						ed2->v1->edge_tot--;
+						ed2->v2->edge_tot--;
 					}
 
 					/* new edge */
 					ed3 = BLI_scanfill_edge_add(sf_ctx, v1, v3);
 					BLI_remlink(&sf_ctx->filledgebase, ed3);
 					ed3->f = SF_EDGE_UNKNOWN;
-					ed3->v1->h++; 
-					ed3->v2->h++;
+					ed3->v1->edge_tot++;
+					ed3->v2->edge_tot++;
 					
 					/* printf("add new edge %x %x\n", v1, v3); */
 					sc1 = addedgetoscanlist(sf_ctx, ed3, verts);
 					
 					if (sc1) {  /* ed3 already exists: remove if a boundary */
 						/* printf("Edge exists\n"); */
-						ed3->v1->h--; 
-						ed3->v2->h--;
+						ed3->v1->edge_tot--;
+						ed3->v2->edge_tot--;
 
 						ed3 = sc1->edge_first;
 						while (ed3) {
@@ -787,8 +787,8 @@
 								if (twoconnected || ed3->f == SF_EDGE_BOUNDARY) {
 									BLI_remlink((ListBase *)&(sc1->edge_first), ed3);
 									BLI_addtail(&sf_ctx->filledgebase, ed3);
-									ed3->v1->h--; 
-									ed3->v2->h--;
+									ed3->v1->edge_tot--;
+									ed3->v2->edge_tot--;
 								}
 								break;
 							}
@@ -797,19 +797,21 @@
 					}
 				}
 			}
+
 			/* test for loose edges */
 			ed1 = sc->edge_first;
 			while (ed1) {
 				nexted = ed1->next;
-				if (ed1->v1->h < 2 || ed1->v2->h < 2) {
+				if (ed1->v1->edge_tot < 2 || ed1->v2->edge_tot < 2) {
 					BLI_remlink((ListBase *)&(sc->edge_first), ed1);
 					BLI_addtail(&sf_ctx->filledgebase, ed1);
-					if (ed1->v1->h > 1) ed1->v1->h--;
-					if (ed1->v2->h > 1) ed1->v2->h--;
+					if (ed1->v1->edge_tot > 1) ed1->v1->edge_tot--;
+					if (ed1->v2->edge_tot > 1) ed1->v2->edge_tot--;
 				}
 
 				ed1 = nexted;
 			}
+			/* done with loose edges */
 		}
 
 		sc++;
@@ -861,7 +863,7 @@
 	while (eve) {
 		eve->f = 0;
 		eve->poly_nr = 0;
-		eve->h = 0;
+		eve->edge_tot = 0;
 		eve = eve->next;
 		a += 1;
 	}
@@ -899,15 +901,15 @@
 	eed = sf_ctx->filledgebase.first;
 	while (eed) {
 		eed->poly_nr = 0;
-		eed->v1->f = SF_VERT_UNKNOWN;
-		eed->v2->f = SF_VERT_UNKNOWN;
+		eed->v1->f = SF_VERT_AVAILABLE;
+		eed->v2->f = SF_VERT_AVAILABLE;
 
 		eed = eed->next;
 	}
 
 	eve = sf_ctx->fillvertbase.first;
 	while (eve) {
-		if (eve->f & SF_VERT_UNKNOWN) {
+		if (eve->f & SF_VERT_AVAILABLE) {
 			ok = 1;
 			break;
 		}
@@ -1017,8 +1019,8 @@
 	/* STEP 2: remove loose edges and strings of edges */
 	eed = sf_ctx->filledgebase.first;
 	while (eed) {
-		if (eed->v1->h++ > 250) break;
-		if (eed->v2->h++ > 250) break;
+		if (eed->v1->edge_tot++ > 250) break;
+		if (eed->v2->edge_tot++ > 250) break;
 		eed = eed->next;
 	}
 	if (eed) {
@@ -1039,14 +1041,14 @@
 		while (eed) {
 			if (toggle & 1) nexted = eed->next;
 			else nexted = eed->prev;
-			if (eed->v1->h == 1) {
-				eed->v2->h--;
+			if (eed->v1->edge_tot == 1) {
+				eed->v2->edge_tot--;
 				BLI_remlink(&sf_ctx->fillvertbase, eed->v1);
 				BLI_remlink(&sf_ctx->filledgebase, eed);
 				ok = 1;
 			}
-			else if (eed->v2->h == 1) {
-				eed->v1->h--;
+			else if (eed->v2->edge_tot == 1) {
+				eed->v1->edge_tot--;
 				BLI_remlink(&sf_ctx->fillvertbase, eed->v2);
 				BLI_remlink(&sf_ctx->filledgebase, eed);
 				ok = 1;
@@ -1061,13 +1063,13 @@
 
 
 	/* CURRENT STATUS:
-	 * - eve->f       :1 = available in edges
-	 * - eve->xs      :polynumber
-	 * - eve->h       :amount of edges connected to vertex
-	 * - eve->tmp.v   :store! original vertex number
+	 * - eve->f        :1 = available in edges
+	 * - eve->poly_nr  :polynumber
+	 * - eve->edge_tot :amount of edges connected to vertex
+	 * - eve->tmp.v    :store! original vertex number
 	 * 
-	 * - eed->f       :1 = boundary edge (optionally set by caller)
-	 * - eed->poly_nr :poly number
+	 * - eed->f        :1 = boundary edge (optionally set by caller)
+	 * - eed->poly_nr  :poly number
 	 */
 
 
@@ -1096,7 +1098,7 @@
 		min_xy_p[1] = (min_xy_p[1]) < (eve->xy[1]) ? (min_xy_p[1]) : (eve->xy[1]);
 		max_xy_p[0] = (max_xy_p[0]) > (eve->xy[0]) ? (max_xy_p[0]) : (eve->xy[0]);
 		max_xy_p[1] = (max_xy_p[1]) > (eve->xy[1]) ? (max_xy_p[1]) : (eve->xy[1]);
-		if (eve->h > 2) pflist[eve->poly_nr - 1].f = 1;
+		if (eve->edge_tot > 2) pflist[eve->poly_nr - 1].f = 1;
 
 		eve = eve->next;
 	}




More information about the Bf-blender-cvs mailing list