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

Comparing ray/src/hd/rholo2.c (file contents):
Revision 3.7 by gregl, Fri Dec 12 19:52:32 1997 UTC vs.
Revision 3.15 by gwlarson, Mon Nov 23 18:17:53 1998 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1997 Silicon Graphics, Inc. */
1 > /* Copyright (c) 1998 Silicon Graphics, Inc. */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ SGI";
# Line 34 | Line 34 | register PACKET        *p;
34                  p->ra[i].r[1][0] = sl[2] * 256.;
35                  p->ra[i].r[1][1] = sl[3] * 256.;
36                  d = hdray(ro, rd, hdlist[p->hd], gc, p->ra[i].r);
37 +                if (!vdef(OBSTRUCTIONS))
38 +                        d *= frandom();                 /* random offset */
39                  if (p->offset != NULL) {
40 <                        VSUM(ro, ro, rd, d);            /* exterior only */
40 >                        VSUM(ro, ro, rd, d);            /* advance ray */
41                          p->offset[i] = d;
42                  }
43                  VCOPY(rod, ro);
# Line 72 | Line 74 | done_rtrace()                  /* clean up and close rtrace calculati
74                                          /* already closed? */
75          if (!nprocs)
76                  return;
75        wputs("closing rtrace process...\n");
77                                          /* flush beam queue */
78          done_packets(flush_queue());
79                                          /* sync holodeck */
# Line 80 | Line 81 | done_rtrace()                  /* clean up and close rtrace calculati
81                                          /* close rtrace */
82          if ((status = end_rtrace()))
83                  error(WARNING, "bad exit status from rtrace");
84 <        if (vdef(REPORT))               /* report time */
84 >        if (vdef(REPORT)) {             /* report time */
85 >                eputs("rtrace process closed\n");
86                  report(0);
87 +        }
88          return(status);                 /* return status */
89   }
90  
# Line 92 | Line 95 | new_rtrace()                   /* restart rtrace calculation */
95  
96          if (nprocs > 0)                 /* already running? */
97                  return;
95        wputs("restarting rtrace process...\n");
98          starttime = time(NULL);         /* reset start time and counts */
99          npacksdone = nraysdone = 0L;
100          if (vdef(TIME))                 /* reset end time */
# Line 104 | Line 106 | new_rtrace()                   /* restart rtrace calculation */
106          }
107          if (start_rtrace() < 1)         /* start rtrace */
108                  error(WARNING, "cannot restart rtrace");
109 <        else if (vdef(REPORT))
109 >        else if (vdef(REPORT)) {
110 >                eputs("rtrace process restarted\n");
111                  report(0);
112 +        }
113   }
114  
115  
116   getradfile()                    /* run rad and get needed variables */
117   {
118 <        static short    mvar[] = {OCTREE,-1};
118 >        static short    mvar[] = {OCTREE,EYESEP,-1};
119          static char     tf1[] = TEMPLATE;
120          char    tf2[64];
121          char    combuf[256];
# Line 120 | Line 124 | getradfile()                   /* run rad and get needed variables */
124          register char   *cp;
125                                          /* check if rad file specified */
126          if (!vdef(RIF))
127 <                return;
127 >                return(0);
128                                          /* create rad command */
129          mktemp(tf1);
130          sprintf(tf2, "%s.rif", tf1);
# Line 143 | Line 147 | getradfile()                   /* run rad and get needed variables */
147                  strcpy(pippt, "> /dev/null");   /* nothing to match */
148          else
149                  sprintf(cp, ")[ \t]*=' > %s", tf2);
150 <        if (system(combuf)) {
151 <                unlink(tf2);                    /* clean up */
152 <                unlink(tf1);
153 <                error(SYSTEM, "cannot execute rad command");
150 <        }
150 > #ifdef DEBUG
151 >        wputs(combuf); wputs("\n");
152 > #endif
153 >        system(combuf);                         /* ignore exit code */
154          if (pippt == NULL) {
155                  loadvars(tf2);                  /* load variables */
156                  unlink(tf2);
157          }
158          rtargc += wordfile(rtargv+rtargc, tf1); /* get rtrace options */
159          unlink(tf1);                    /* clean up */
160 +        return(1);
161   }
162  
163  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines