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 ) ;
|