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

Comparing ray/src/gen/genbox.c (file contents):
Revision 2.5 by greg, Sat Feb 22 02:07:23 2003 UTC vs.
Revision 2.7 by schorsch, Sun Nov 16 10:29:38 2003 UTC

# Line 29 | Line 29 | int  rounde = 0;               /* boolean true for rounde edges */
29   int  reverse = 0;       /* boolean true for reversed normals */
30  
31  
32 +
33 + static void
34 + vertex(v)
35 + register int  v;
36 + {
37 +        register int  i;
38 +
39 +        for (i = 0; i < 3; i++) {
40 +                if (v & 010)
41 +                        printf("\t%18.12g", v & 01 ? size[i]-bevel : bevel);
42 +                else
43 +                        printf("\t%18.12g", v & 01 ? size[i] : 0.0);
44 +                v >>= 1;
45 +        }
46 +        printf("\n");
47 + }
48 +
49 +
50 + static void
51 + side(a, b, c, d)                /* generate a rectangular face */
52 + int  a, b, c, d;
53 + {
54 +        printf("\n%s polygon %s.%c%c%c%c\n", cmtype, cname,
55 +                        let[a], let[b], let[c], let[d]);
56 +        printf("0\n0\n12\n");
57 +        if (reverse) {
58 +                vertex(d);
59 +                vertex(c);
60 +                vertex(b);
61 +                vertex(a);
62 +        } else {
63 +                vertex(a);
64 +                vertex(b);
65 +                vertex(c);
66 +                vertex(d);
67 +        }
68 + }
69 +
70 +
71 + static void
72 + corner(a, b, c)                 /* generate a triangular face */
73 + int  a, b, c;
74 + {
75 +        printf("\n%s polygon %s.%c%c%c\n", cmtype, cname,
76 +                        let[a], let[b], let[c]);
77 +        printf("0\n0\n9\n");
78 +        if (reverse) {
79 +                vertex(c);
80 +                vertex(b);
81 +                vertex(a);
82 +        } else {
83 +                vertex(a);
84 +                vertex(b);
85 +                vertex(c);
86 +        }
87 + }
88 +
89 +
90 + static void
91 + cylinder(v0, v1)                /* generate a cylinder */
92 + int  v0, v1;
93 + {
94 +        printf("\n%s cylinder %s.%c%c\n", cmtype, cname, v0+'0', v1+'0');
95 +        printf("0\n0\n7\n");
96 +        vertex(v0);
97 +        vertex(v1);
98 +        printf("\t%18.12g\n", bevel);
99 + }
100 +
101 +
102 + static void
103 + sphere(v0)                      /* generate a sphere */
104 + int  v0;
105 + {
106 +        printf("\n%s sphere %s.%c\n", cmtype, cname, v0+'0');
107 +        printf("0\n0\n4\n");
108 +        vertex(v0);
109 +        printf("\t%18.12g\n", bevel);
110 + }
111 +
112 +
113 + static void
114 + printhead(ac, av)               /* print command header */
115 + register int  ac;
116 + register char  **av;
117 + {
118 +        putchar('#');
119 +        while (ac--) {
120 +                putchar(' ');
121 +                fputs(*av++, stdout);
122 +        }
123 +        putchar('\n');
124 + }
125 +
126 +
127 + int
128   main(argc, argv)
129   int  argc;
130   char  **argv;
# Line 138 | Line 234 | userr:
234          exit(1);
235   }
236  
141
142 side(a, b, c, d)                /* generate a rectangular face */
143 int  a, b, c, d;
144 {
145        printf("\n%s polygon %s.%c%c%c%c\n", cmtype, cname,
146                        let[a], let[b], let[c], let[d]);
147        printf("0\n0\n12\n");
148        if (reverse) {
149                vertex(d);
150                vertex(c);
151                vertex(b);
152                vertex(a);
153        } else {
154                vertex(a);
155                vertex(b);
156                vertex(c);
157                vertex(d);
158        }
159 }
160
161
162 corner(a, b, c)                 /* generate a triangular face */
163 int  a, b, c;
164 {
165        printf("\n%s polygon %s.%c%c%c\n", cmtype, cname,
166                        let[a], let[b], let[c]);
167        printf("0\n0\n9\n");
168        if (reverse) {
169                vertex(c);
170                vertex(b);
171                vertex(a);
172        } else {
173                vertex(a);
174                vertex(b);
175                vertex(c);
176        }
177 }
178
179
180 cylinder(v0, v1)                /* generate a cylinder */
181 int  v0, v1;
182 {
183        printf("\n%s cylinder %s.%c%c\n", cmtype, cname, v0+'0', v1+'0');
184        printf("0\n0\n7\n");
185        vertex(v0);
186        vertex(v1);
187        printf("\t%18.12g\n", bevel);
188 }
189
190
191 sphere(v0)                      /* generate a sphere */
192 int  v0;
193 {
194        printf("\n%s sphere %s.%c\n", cmtype, cname, v0+'0');
195        printf("0\n0\n4\n");
196        vertex(v0);
197        printf("\t%18.12g\n", bevel);
198 }
199
200
201 vertex(v)
202 register int  v;
203 {
204        register int  i;
205
206        for (i = 0; i < 3; i++) {
207                if (v & 010)
208                        printf("\t%18.12g", v & 01 ? size[i]-bevel : bevel);
209                else
210                        printf("\t%18.12g", v & 01 ? size[i] : 0.0);
211                v >>= 1;
212        }
213        printf("\n");
214 }
215
216
217 printhead(ac, av)               /* print command header */
218 register int  ac;
219 register char  **av;
220 {
221        putchar('#');
222        while (ac--) {
223                putchar(' ');
224                fputs(*av++, stdout);
225        }
226        putchar('\n');
227 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines