[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36672] trunk/blender/source/blender: made BLI_edgefill returns the list length since some callers count directly after , also remove 2 unused flags from ScFillVert struct.

Campbell Barton ideasman42 at gmail.com
Fri May 13 18:04:22 CEST 2011


Revision: 36672
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36672
Author:   campbellbarton
Date:     2011-05-13 16:04:20 +0000 (Fri, 13 May 2011)
Log Message:
-----------
made BLI_edgefill returns the list length since some callers count directly after, also remove 2 unused flags from ScFillVert struct.

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

Modified: trunk/blender/source/blender/blenkernel/intern/displist.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/displist.c	2011-05-13 14:32:08 UTC (rev 36671)
+++ trunk/blender/source/blender/blenkernel/intern/displist.c	2011-05-13 16:04:20 UTC (rev 36672)
@@ -981,16 +981,7 @@
 			dl= dl->next;
 		}
 		
-		if(totvert && BLI_edgefill(0)) { // XXX (obedit && obedit->actcol)?(obedit->actcol-1):0)) {
-
-			/* count faces  */
-			tot= 0;
-			efa= fillfacebase.first;
-			while(efa) {
-				tot++;
-				efa= efa->next;
-			}
-
+		if(totvert && (tot= BLI_edgefill(0))) { // XXX (obedit && obedit->actcol)?(obedit->actcol-1):0)) {
 			if(tot) {
 				dlnew= MEM_callocN(sizeof(DispList), "filldisplist");
 				dlnew->type= DL_INDEX3;

Modified: trunk/blender/source/blender/blenlib/BLI_scanfill.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_scanfill.h	2011-05-13 14:32:08 UTC (rev 36671)
+++ trunk/blender/source/blender/blenlib/BLI_scanfill.h	2011-05-13 16:04:20 UTC (rev 36672)
@@ -53,7 +53,7 @@
 /* scanfill.c: used in displist only... */
 struct EditVert *BLI_addfillvert(float *vec);
 struct EditEdge *BLI_addfilledge(struct EditVert *v1, struct EditVert *v2);
-int BLI_edgefill(int mat_nr);
+int BLI_edgefill(short mat_nr);
 void BLI_end_edgefill(void);
 
 /* These callbacks are needed to make the lib finction properly */

Modified: trunk/blender/source/blender/blenlib/intern/scanfill.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/scanfill.c	2011-05-13 14:32:08 UTC (rev 36671)
+++ trunk/blender/source/blender/blenlib/intern/scanfill.c	2011-05-13 16:04:20 UTC (rev 36672)
@@ -85,7 +85,6 @@
 typedef struct ScFillVert {
 	EditVert *v1;
 	EditEdge *first,*last;
-	short f,f1;
 } ScFillVert;
 
 
@@ -95,9 +94,9 @@
 
 static ScFillVert *scdata;
 
-ListBase fillvertbase = {0,0};
-ListBase filledgebase = {0,0};
-ListBase fillfacebase = {0,0};
+ListBase fillvertbase = {NULL, NULL};
+ListBase filledgebase = {NULL, NULL};
+ListBase fillfacebase = {NULL, NULL};
 
 static short cox, coy;
 
@@ -219,7 +218,7 @@
 	return newed;
 }
 
-static void addfillface(EditVert *v1, EditVert *v2, EditVert *v3, int mat_nr)
+static void addfillface(EditVert *v1, EditVert *v2, EditVert *v3, short mat_nr)
 {
 	/* does not make edges */
 	EditFace *evl;
@@ -495,7 +494,7 @@
 }
 
 
-static void scanfill(PolyFill *pf, int mat_nr)
+static int scanfill(PolyFill *pf, short mat_nr)
 {
 	ScFillVert *sc = NULL, *sc1;
 	EditVert *eve,*v1,*v2,*v3;
@@ -748,11 +747,13 @@
 	}
 
 	MEM_freeN(scdata);
+
+	return totface;
 }
 
 
 
-int BLI_edgefill(int mat_nr)
+int BLI_edgefill(short mat_nr)
 {
 	/*
 	  - fill works with its own lists, so create that first (no faces!)
@@ -760,6 +761,7 @@
 	  - struct elements xs en ys are not used here: don't hide stuff in it
 	  - edge flag ->f becomes 2 when it's a new edge
 	  - mode: & 1 is check for crossings, then create edges (TO DO )
+	  - returns number of triangle faces added.
 	*/
 	ListBase tempve, temped;
 	EditVert *eve;
@@ -767,6 +769,7 @@
 	PolyFill *pflist,*pf;
 	float *minp, *maxp, *v1, *v2, norm[3], len;
 	short a,c,poly=0,ok=0,toggle=0;
+	int totfaces= 0; /* total faces added */
 
 	/* reset variables */
 	eve= fillvertbase.first;
@@ -1030,7 +1033,7 @@
 	for(a=0;a<poly;a++) {
 		if(pf->edges>1) {
 			splitlist(&tempve,&temped,pf->nr);
-			scanfill(pf, mat_nr);
+			totfaces += scanfill(pf, mat_nr);
 		}
 		pf++;
 	}
@@ -1040,6 +1043,6 @@
 	/* FREE */
 
 	MEM_freeN(pflist);
-	return 1;
 
+	return totfaces;
 }




More information about the Bf-blender-cvs mailing list