ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/gen/genbeads.c
Revision: 2.7
Committed: Sun Nov 16 10:29:38 2003 UTC (20 years, 4 months ago) by schorsch
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3, HEAD
Changes since 2.6: +2 -2 lines
Log Message:
Continued ANSIfication and reduced other compile warnings.

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id: genbeads.c,v 2.6 2003/06/08 12:03:09 schorsch Exp $";
3 #endif
4 /*
5 * genbeads.c - generate a string of spheres using Hermite
6 * curve specification.
7 *
8 * 10/29/85
9 */
10
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <math.h>
14
15 void hermite3(double hp[3], double p0[3], double p1[3],
16 double r0[3], double r1[3], double t);
17 void htan3(double ht[3], double p0[3], double p1[3],
18 double r0[3], double r1[3], double t);
19
20 static void genstring(
21 char *mtype,
22 char *name,
23 double p0[3],
24 double p1[3],
25 double r0[3],
26 double r1[3],
27 double rad,
28 double inc
29 )
30 {
31 register int i;
32 double v[3];
33 double t;
34
35 t = 0.0;
36 for (i = 0; t <= 1.0; i++) {
37
38 printf("\n%s sphere %s.%d\n", mtype, name, i);
39
40 hermite3(v, p0, p1, r0, r1, t);
41
42 printf("0\n0\n4 %18.12g %18.12g %18.12g %18.12g\n",
43 v[0], v[1], v[2], rad);
44
45 htan3(v, p0, p1, r0, r1, t);
46 t += inc / sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
47 }
48 }
49
50 int main(int argc, char **argv)
51 {
52 double p0[3], p1[3], r0[3], r1[3];
53 double rad, inc;
54 char *mtype; /* material type */
55 char *name; /* name */
56
57 if (argc != 17) {
58 fprintf(stderr, "Usage: %s material name p0 p1 r0 r1 rad inc\n",
59 argv[0]);
60 exit(1);
61 }
62 mtype = argv[1];
63 name = argv[2];
64 p0[0] = atof(argv[3]);
65 p0[1] = atof(argv[4]);
66 p0[2] = atof(argv[5]);
67 p1[0] = atof(argv[6]);
68 p1[1] = atof(argv[7]);
69 p1[2] = atof(argv[8]);
70 r0[0] = atof(argv[9]);
71 r0[1] = atof(argv[10]);
72 r0[2] = atof(argv[11]);
73 r1[0] = atof(argv[12]);
74 r1[1] = atof(argv[13]);
75 r1[2] = atof(argv[14]);
76 rad = atof(argv[15]);
77 inc = atof(argv[16]);
78
79 genstring(mtype, name, p0, p1, r0, r1, rad, inc);
80
81 return(0);
82 }
83