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

Comparing ray/src/rt/rtrace.c (file contents):
Revision 1.6 by greg, Mon Jul 10 15:21:28 1989 UTC vs.
Revision 1.8 by greg, Fri Jan 19 00:00:26 1990 UTC

# Line 16 | Line 16 | static char SCCSid[] = "$SunId$ LBL";
16   *      xorg    yorg    zorg    xdir    ydir    zdir
17   *
18   *  The direction need not be normalized.  Output is flexible.
19 + *  If the direction vector is (0,0,0), then the output is flushed.
20   *  All values default to ascii representation of real
21   *  numbers.  Binary representations can be selected
22   *  with '-ff' for float or '-fd' for double.  By default,
# Line 94 | Line 95 | char  *fname;
95          while (getvec(orig, inform, fp) == 0 &&
96                          getvec(direc, inform, fp) == 0) {
97  
98 <                if (normalize(direc) == 0.0)
99 <                        error(USER, "zero direction vector");
98 >                if (normalize(direc) == 0.0) {          /* zero ==> flush */
99 >                        fflush(stdout);
100 >                        continue;
101 >                }
102                                                          /* compute and print */
103                  if (outvals[0] == 'i')
104                          irrad(orig, direc);
105                  else
106                          radiance(orig, direc);
107 <                                                        /* flush if requested */
107 >                                                        /* flush if time */
108                  if (--nextflush == 0) {
109                          fflush(stdout);
110                          nextflush = hresolu;
# Line 223 | Line 226 | FILE  *fp;
226                          return(-1);
227                  break;
228          case 'f':                                       /* binary float */
229 <                if (fread(vf, sizeof(float), 3, fp) != 3)
229 >                if (fread((char *)vf, sizeof(float), 3, fp) != 3)
230                          return(-1);
231                  vec[0] = vf[0]; vec[1] = vf[1]; vec[2] = vf[2];
232                  break;
233          case 'd':                                       /* binary double */
234 <                if (fread(vec, sizeof(double), 3, fp) != 3)
234 >                if (fread((char *)vec, sizeof(double), 3, fp) != 3)
235                          return(-1);
236                  break;
237          }
# Line 379 | Line 382 | static
382   putd(v)                         /* print binary double */
383   double  v;
384   {
385 <        fwrite(&v, sizeof(v), 1, stdout);
385 >        fwrite((char *)&v, sizeof(v), 1, stdout);
386   }
387  
388  
# Line 389 | Line 392 | double  v;
392   {
393          float f = v;
394  
395 <        fwrite(&f, sizeof(f), 1, stdout);
395 >        fwrite((char *)&f, sizeof(f), 1, stdout);
396   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines