--- ray/src/gen/genbeads.c 1991/11/12 17:04:35 2.1 +++ ray/src/gen/genbeads.c 2003/06/08 12:03:09 2.6 @@ -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.6 2003/06/08 12:03:09 schorsch Exp $"; #endif - /* * genbeads.c - generate a string of spheres using Hermite * curve specification. @@ -12,20 +9,50 @@ static char SCCSid[] = "$SunId$ LBL"; */ #include +#include +#include +void hermite3(double hp[3], double p0[3], double p1[3], + double r0[3], double r1[3], double t); +htan3(double ht[3], double p0[3], double p1[3], + double r0[3], double r1[3], double t); -char *mtype; /* material type */ +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++) { -char *name; /* name */ + 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]); + } +} -main(argc, argv) -int argc; -char **argv; +int main(int argc, char **argv) { - double atof(); 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", @@ -54,33 +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; -{ - double sqrt(); - 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]); - } -}