[Plib-cvs] plib/src/ssg ssgOptimiser.cxx,1.25,1.26
Brought to you by:
sjbaker
From: M?rten Str?m. <str...@us...> - 2002-06-10 16:56:05
|
Update of /cvsroot/plib/plib/src/ssg In directory usw-pr-cvs1:/tmp/cvs-serv30112 Modified Files: ssgOptimiser.cxx Log Message: David Megginson: Patch for AC3D smoothing. Index: ssgOptimiser.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgOptimiser.cxx,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- ssgOptimiser.cxx 3 Apr 2002 13:55:16 -0000 1.25 +++ ssgOptimiser.cxx 10 Jun 2002 16:56:00 -0000 1.26 @@ -303,16 +303,22 @@ for ( i = 0 ; i < tnum ; i++ ) { sgVec3 tmp ; + short j ; sgMakeNormal ( tmp, vlist [ tlist [ i*3+ 0 ] ] -> vertex, vlist [ tlist [ i*3+ 1 ] ] -> vertex, vlist [ tlist [ i*3+ 2 ] ] -> vertex ) ; - - sgAddVec3 ( vlist [ tlist [ i*3+ 0 ] ] -> normal, tmp ) ; - sgAddVec3 ( vlist [ tlist [ i*3+ 1 ] ] -> normal, tmp ) ; - sgAddVec3 ( vlist [ tlist [ i*3+ 2 ] ] -> normal, tmp ) ; + + for ( j = 0; j < vnum; j++ ) { + if (sgEqualVec3(vlist[j]->vertex, vlist[tlist[i*3+0]]->vertex)) + sgAddVec3(vlist[j]->normal, tmp); + if (sgEqualVec3(vlist[j]->vertex, vlist[tlist[i*3+1]]->vertex)) + sgAddVec3(vlist[j]->normal, tmp); + if (sgEqualVec3(vlist[j]->vertex, vlist[tlist[i*3+2]]->vertex)) + sgAddVec3(vlist[j]->normal, tmp); + } } - + for ( i = 0 ; i < vnum ; i++ ) if ( sgScalarProductVec2 ( vlist[i]->normal, vlist[i]->normal ) < 0.001 ) sgSetVec3 ( vlist[i]->normal, 0.0f, 0.0f, 1.0f ) ; |