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; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs