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

Comparing ray/src/hd/rhdisp3.c (file contents):
Revision 3.5 by gregl, Mon Nov 24 15:17:41 1997 UTC vs.
Revision 3.6 by gregl, Tue Nov 25 16:52:51 1997 UTC

# Line 271 | Line 271 | VIEW   *vp;
271   memerr:
272          error(SYSTEM, "out of memory in getviewcells");
273   }
274 +
275 +
276 + gridlines(f)                    /* run through holodeck section grid lines */
277 + int     (*f)();
278 + {
279 +        register int    hd, w, i;
280 +        int     g0, g1;
281 +        FVECT   wp[2];
282 +        double  d;
283 +                                        /* do each wall on each section */
284 +        for (hd = 0; hdlist[hd] != NULL; hd++)
285 +                for (w = 0; w < 6; w++) {
286 +                        g0 = ((w>>1)+1)%3;
287 +                        g1 = ((w>>1)+2)%3;
288 +                        for (i = hdlist[hd]->grid[g0]; i--; ) { /* g0 lines */
289 +                                d = (double)i/hdlist[hd]->grid[g0];
290 +                                VSUM(wp[0], hdlist[hd]->orig,
291 +                                                hdlist[hd]->xv[g0], d);
292 +                                if (w & 1)
293 +                                    VSUM(wp[0], wp[0],
294 +                                                hdlist[hd]->xv[w>>1], 1.);
295 +                                VSUM(wp[1], wp[0], hdlist[hd]->xv[g1], 1.);
296 +                                (*f)(wp);
297 +                        }
298 +                        for (i = hdlist[hd]->grid[g1]; i--; ) { /* g1 lines */
299 +                                d = (double)i/hdlist[hd]->grid[g1];
300 +                                VSUM(wp[0], hdlist[hd]->orig,
301 +                                                hdlist[hd]->xv[g1], d);
302 +                                if (w & 1)
303 +                                    VSUM(wp[0], wp[0],
304 +                                                hdlist[hd]->xv[w>>1], 1.);
305 +                                VSUM(wp[1], wp[0], hdlist[hd]->xv[g0], 1.);
306 +                                (*f)(wp);
307 +                        }
308 +                }
309 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines