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

# User Rev Content
1 greg 1.1 #ifndef lint
2 schorsch 2.7 static const char RCSid[] = "$Id: genbeads.c,v 2.6 2003/06/08 12:03:09 schorsch Exp $";
3 greg 1.1 #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 greg 2.5 #include <stdlib.h>
13 greg 2.3 #include <math.h>
14 greg 1.1
15 schorsch 2.6 void hermite3(double hp[3], double p0[3], double p1[3],
16     double r0[3], double r1[3], double t);
17 schorsch 2.7 void htan3(double ht[3], double p0[3], double p1[3],
18 schorsch 2.6 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 greg 1.1
38 schorsch 2.6 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 greg 2.4
45 schorsch 2.6 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 greg 1.1
50 schorsch 2.6 int main(int argc, char **argv)
51 greg 1.1 {
52     double p0[3], p1[3], r0[3], r1[3];
53     double rad, inc;
54 schorsch 2.6 char *mtype; /* material type */
55     char *name; /* name */
56 greg 1.1
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