--- ray/src/gen/genbeads.c 1993/06/04 14:29:20 2.3 +++ ray/src/gen/genbeads.c 2003/11/16 10:29:38 2.7 @@ -1,9 +1,6 @@ -/* Copyright (c) 1986 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: genbeads.c,v 2.7 2003/11/16 10:29:38 schorsch Exp $"; #endif - /* * genbeads.c - generate a string of spheres using Hermite * curve specification. @@ -12,19 +9,50 @@ static char SCCSid[] = "$SunId$ LBL"; */ #include +#include #include -char *mtype; /* material type */ +void hermite3(double hp[3], double p0[3], double p1[3], + double r0[3], double r1[3], double t); +void htan3(double ht[3], double p0[3], double p1[3], + double r0[3], double r1[3], double t); -char *name; /* name */ +static void genstring( + char *mtype, + char *name, + double p0[3], + double p1[3], + double r0[3], + double r1[3], + double rad, + double inc + ) +{ + register int i; + double v[3]; + double t; + + t = 0.0; + for (i = 0; t <= 1.0; i++) { + printf("\n%s sphere %s.%d\n", mtype, name, i); + + hermite3(v, p0, p1, r0, r1, t); + + printf("0\n0\n4 %18.12g %18.12g %18.12g %18.12g\n", + v[0], v[1], v[2], rad); -main(argc, argv) -int argc; -char **argv; + htan3(v, p0, p1, r0, r1, t); + t += inc / sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); + } +} + +int main(int argc, char **argv) { double p0[3], p1[3], r0[3], r1[3]; double rad, inc; + char *mtype; /* material type */ + char *name; /* name */ if (argc != 17) { fprintf(stderr, "Usage: %s material name p0 p1 r0 r1 rad inc\n", @@ -53,32 +81,3 @@ char **argv; return(0); } - -genstring(mtype, name, p0, p1, r0, r1, rad, inc) -char *mtype; -char *name; -double p0[3]; -double p1[3]; -double r0[3]; -double r1[3]; -double rad; -double inc; -{ - register int i; - double v[3]; - double t; - - t = 0.0; - for (i = 0; t <= 1.0; i++) { - - printf("\n%s sphere %s.%d\n", mtype, name, i); - - hermite3(v, p0, p1, r0, r1, t); - - printf("0\n0\n4 %18.12g %18.12g %18.12g %18.12g\n", - v[0], v[1], v[2], rad); - - htan3(v, p0, p1, r0, r1, t); - t += inc / sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); - } -}