From: Alan W. I. <ai...@us...> - 2004-04-12 05:15:50
|
Update of /cvsroot/plplot/plplot/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5138 Modified Files: plot3d.c Log Message: Bug fix for shade_triangle: deal properly with case where all points are clipped from triangle by calls to plP_clip_poly. Index: plot3d.c =================================================================== RCS file: /cvsroot/plplot/plplot/src/plot3d.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- plot3d.c 11 Apr 2004 23:56:49 -0000 1.57 +++ plot3d.c 12 Apr 2004 05:02:02 -0000 1.58 @@ -231,20 +231,22 @@ n = plP_clip_poly(n, V, 2, 1, -zmin); n = plP_clip_poly(n, V, 2, -1, zmax); - for(i=0; i<n; i++) { - u[i] = plP_wcpcx(plP_w3wcx(x[i], y[i], z[i])); - v[i] = plP_wcpcy(plP_w3wcy(x[i], y[i], z[i])); - } - u[n] = u[0]; - v[n] = v[0]; + if(n > 0) { + for(i=0; i<n; i++) { + u[i] = plP_wcpcx(plP_w3wcx(x[i], y[i], z[i])); + v[i] = plP_wcpcy(plP_w3wcy(x[i], y[i], z[i])); + } + u[n] = u[0]; + v[n] = v[0]; #ifdef SHADE_DEBUG /* show triangles */ - plcol0(1); - x[3]=x[0]; y[3]=y[0]; z[3]=z[0]; - plline3(4,x,y,z); + plcol0(1); + x[3]=x[0]; y[3]=y[0]; z[3]=z[0]; + plline3(4,x,y,z); #else /* fill triangles */ - plP_fill(u, v, n+1); + plP_fill(u, v, n+1); #endif + } } /*--------------------------------------------------------------------------*\ |