ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/gen/genblinds.c
(Generate patch)

Comparing ray/src/gen/genblinds.c (file contents):
Revision 2.9 by greg, Sat Feb 22 02:07:23 2003 UTC vs.
Revision 2.10 by schorsch, Sun Jun 8 12:03:09 2003 UTC

# Line 18 | Line 18 | static const char      RCSid[] = "$Id$";
18   #include  <stdio.h>
19   #include <stdlib.h>
20   #include  <math.h>
21 + #include  <string.h>
22  
23   #define  PI             3.14159265358979323846
24   #define  DELTA          10.  /*  MINIMAL SUSTAINED ANGLE IN DEGREES */
# Line 29 | Line 30 | double  height;
30   int  nslats,  nsurf;
31  
32  
33 +
34 + makeflat(w,d,a)
35 + double  w, d, a;
36 + {
37 +        double  h;
38 +
39 +        h = d*sin(a);
40 +        d *= cos(a);
41 +        baseflat[0][0] = 0.0;
42 +        baseflat[0][1] = 0.0;
43 +        baseflat[0][2] = 0.0;
44 +        baseflat[1][0] = 0.0;
45 +        baseflat[1][1] = w;
46 +        baseflat[1][2] = 0.0;
47 +        baseflat[2][0] = d;
48 +        baseflat[2][1] = w;
49 +        baseflat[2][2] = h;
50 +        baseflat[3][0] = d;
51 +        baseflat[3][1] = 0.0;
52 +        baseflat[3][2] = h;
53 +
54 + }
55 +
56 +
57 + printslat(n)                    /* print slat # n */
58 + int  n;
59 + {
60 +        register int  i, k;
61 +
62 +        for (k=0; k < nsurf; k++)  {
63 +                printf("\n%s polygon %s.%d.%d\n", material, name, n, k);
64 +                printf("0\n0\n12\n");
65 +                for (i = 0; i < 4; i++)
66 +                        printf("\t%18.12g\t%18.12g\t%18.12g\n",
67 +                                baseblind[i][0][k],
68 +                                baseblind[i][1][k],
69 +                                baseblind[i][2][k] + height*(n-.5)/nslats);
70 +        }              
71 + }
72 +
73 +
74 + printhead(ac, av)               /* print command header */
75 + register int  ac;
76 + register char  **av;
77 + {
78 +        putchar('#');
79 +        while (ac--) {
80 +                putchar(' ');
81 +                fputs(*av++, stdout);
82 +        }
83 +        putchar('\n');
84 + }
85 +
86 +
87   main(argc, argv)
88   int  argc;
89   char  *argv[];
# Line 65 | Line 120 | char  *argv[];
120  
121          /* HOW MANY ELEMENTARY SURFACES SHOULD BE CALCULATED ? */
122  
123 <        nsurf = (theta / ((PI/180.)*DELTA)) + 1;
123 >        nsurf = (int)(theta / ((PI/180.)*DELTA)) + 1;
124  
125          /* WHAT IS THE DEPTH OF THE ELEMENTARY SURFACES ? */
126  
# Line 146 | Line 201 | userr:
201   }
202  
203  
149 makeflat(w,d,a)
150 double  w, d, a;
151 {
152        double  h;
204  
154        h = d*sin(a);
155        d *= cos(a);
156        baseflat[0][0] = 0.0;
157        baseflat[0][1] = 0.0;
158        baseflat[0][2] = 0.0;
159        baseflat[1][0] = 0.0;
160        baseflat[1][1] = w;
161        baseflat[1][2] = 0.0;
162        baseflat[2][0] = d;
163        baseflat[2][1] = w;
164        baseflat[2][2] = h;
165        baseflat[3][0] = d;
166        baseflat[3][1] = 0.0;
167        baseflat[3][2] = h;
168
169 }
170
171
172 printslat(n)                    /* print slat # n */
173 int  n;
174 {
175        register int  i, k;
176
177        for (k=0; k < nsurf; k++)  {
178                printf("\n%s polygon %s.%d.%d\n", material, name, n, k);
179                printf("0\n0\n12\n");
180                for (i = 0; i < 4; i++)
181                        printf("\t%18.12g\t%18.12g\t%18.12g\n",
182                                baseblind[i][0][k],
183                                baseblind[i][1][k],
184                                baseblind[i][2][k] + height*(n-.5)/nslats);
185        }              
186 }
187
188
189 printhead(ac, av)               /* print command header */
190 register int  ac;
191 register char  **av;
192 {
193        putchar('#');
194        while (ac--) {
195                putchar(' ');
196                fputs(*av++, stdout);
197        }
198        putchar('\n');
199 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines