--- ray/src/gen/genrev.c 2003/06/08 12:03:09 2.5 +++ ray/src/gen/genrev.c 2008/10/11 04:29:39 2.9 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: genrev.c,v 2.5 2003/06/08 12:03:09 schorsch Exp $"; +static const char RCSid[] = "$Id: genrev.c,v 2.9 2008/10/11 04:29:39 greg Exp $"; #endif /* * genrev.c - program to generate functions of rotation about z @@ -16,6 +16,11 @@ static const char RCSid[] = "$Id: genrev.c,v 2.5 2003/ #include #include +#include "rterror.h" +#include "resolu.h" +#include "rterror.h" +#include "calcomp.h" + #define ZNAME "Z`SYS`" /* z function name */ #define RNAME "R`SYS`" /* r function name */ @@ -28,11 +33,8 @@ static const char RCSid[] = "$Id: genrev.c,v 2.5 2003/ #define UP 04 #define DOWN 010 -double funvalue(), l_hermite(), l_bezier(), l_bspline(), argument(); -void quit(), eputs(), wputs(); - - +void computen(nzp, nrp, z0, r0, z1, r1) /* compute normal */ double *nzp, *nrp, z0, r0, z1, r1; { @@ -46,45 +48,8 @@ double *nzp, *nrp, z0, r0, z1, r1; } -void -eputs(msg) -char *msg; -{ - fputs(msg, stderr); -} - - -void -wputs(msg) -char *msg; -{ - eputs(msg); -} - - -void -quit(code) -int code; -{ - exit(code); -} - - -printhead(ac, av) /* print command header */ -register int ac; -register char **av; -{ - putchar('#'); - while (ac--) { - putchar(' '); - fputs(*av++, stdout); - } - putchar('\n'); -} - - double -l_hermite() +l_hermite(char *nm) { double t; @@ -97,7 +62,7 @@ l_hermite() double -l_bezier() +l_bezier(char *nm) { double t; @@ -110,7 +75,7 @@ l_bezier() double -l_bspline() +l_bspline(char *nm) { double t; @@ -122,11 +87,11 @@ l_bspline() } +int main(argc, argv) int argc; char *argv[]; { - extern long eclock; char stmp[256]; char *modname; int smooth = 0; @@ -162,7 +127,8 @@ char *argv[]; goto userror; modname = smooth ? "Phong" : argv[1]; - printhead(argc, argv); + fputs("# ", stdout); + printargs(argc, argv, stdout); eclock = 0; lastnz = lastnr = 0.0; @@ -198,13 +164,13 @@ char *argv[]; printf("0\n4\n"); if (orient&(UP|DOWN)) { t = (nextnz - lastnz)/(z - lastz); - printf("\t%15.9g\t%15.9g\n", + printf("\t%18.12g\t%18.12g\n", t, lastnz - t*lastz); } else printf("\t0\t%d\n", orient&IN ? 1 : -1); if (orient&(OUT|IN)) { t = (nextnr - lastnr)/(r - lastr); - printf("\t%15.9g\t%15.9g\n", + printf("\t%18.12g\t%18.12g\n", t, lastnr - t*lastr); } else printf("\t0\t%d\n", orient&UP ? 1 : -1); @@ -214,23 +180,23 @@ char *argv[]; orient&DOWN ? "tube" : "cylinder", argv[2], i); printf("0\n0\n7\n"); - printf("\t0\t0\t%15.9g\n", lastz); - printf("\t0\t0\t%15.9g\n", z); - printf("\t%15.9g\n", r); + printf("\t0\t0\t%18.12g\n", lastz); + printf("\t0\t0\t%18.12g\n", z); + printf("\t%18.12g\n", r); } else if (!(orient&(UP|DOWN))) { printf("\n%s ring %s.%d\n", modname, argv[2], i); printf("0\n0\n8\n"); - printf("\t0\t0\t%15.9g\n", z); - printf("\t0\t0\t%15.9g\n", orient&IN ? 1.0 : -1.0); - printf("\t%15.9g\t%15.9g\n", lastr, r); + printf("\t0\t0\t%18.12g\n", z); + printf("\t0\t0\t%18.12g\n", orient&IN ? 1.0 : -1.0); + printf("\t%18.12g\t%18.12g\n", lastr, r); } else { printf("\n%s %s %s.%d\n", modname, orient&DOWN ? "cup" : "cone", argv[2], i); printf("0\n0\n8\n"); - printf("\t0\t0\t%15.9g\n", lastz); - printf("\t0\t0\t%15.9g\n", z); - printf("\t%15.9g\t%15.9g\n", lastr, r); + printf("\t0\t0\t%18.12g\n", lastz); + printf("\t0\t0\t%18.12g\n", z); + printf("\t%18.12g\t%18.12g\n", lastr, r); } endfor: lastz = z; lastr = r; @@ -238,13 +204,13 @@ char *argv[]; lastnz = nz; lastnr = nr; nz = nextnz; nr = nextnr; } - quit(0); + return 0; userror: fprintf(stderr, "Usage: %s material name z(t) r(t) nseg [-e expr] [-f file] [-s]\n", argv[0]); - quit(1); + return 1; }