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

Comparing ray/src/util/vwrays.c (file contents):
Revision 3.22 by greg, Fri Dec 3 17:22:28 2021 UTC vs.
Revision 3.24 by greg, Sat Apr 9 17:18:08 2022 UTC

# Line 27 | Line 27 | double pa = 1.;
27  
28   double  pj = 0.;
29  
30 + double  pd = 0.;
31 +
32   int     zfd = -1;
33  
34   int     fromstdin = 0;
# Line 77 | Line 79 | main(
79                                          fprintf(stderr,
80                                                  "%s: no view in file\n",
81                                                          argv[i]);
82 <                                        exit(1);
82 >                                        return(1);
83                                  }
84                                  break;
85                          }
# Line 94 | Line 96 | main(
96                          if (rs.xr <= 0) {
97                                  fprintf(stderr, "%s: bad x resolution\n",
98                                                  progname);
99 <                                exit(1);
99 >                                return(1);
100                          }
101                          break;
102                  case 'y':                       /* y resolution */
# Line 102 | Line 104 | main(
104                          if (rs.yr <= 0) {
105                                  fprintf(stderr, "%s: bad y resolution\n",
106                                                  progname);
107 <                                exit(1);
107 >                                return(1);
108                          }
109                          break;
110                  case 'c':                       /* repeat count */
# Line 113 | Line 115 | main(
115                                  pa = atof(argv[++i]);
116                          else if (argv[i][2] == 'j')
117                                  pj = atof(argv[++i]);
118 +                        else if (argv[i][2] == 'd')
119 +                                pd = atof(argv[++i]);
120                          else
121                                  goto userr;
122                          break;
# Line 131 | Line 135 | main(
135                  rval = viewfile(argv[i], &vw, &rs);
136                  if (rval <= 0) {
137                          fprintf(stderr, "%s: no view in picture\n", argv[i]);
138 <                        exit(1);
138 >                        return(1);
139                  }
140                  if (!getdim & (i+1 < argc)) {
141                          zfd = open_float_depth(argv[i+1], (long)rs.xr*rs.yr);
142                          if (zfd < 0)
143 <                                exit(1);
143 >                                return(1);
144                  }
145          }
146          if ((err = setview(&vw)) != NULL) {
147                  fprintf(stderr, "%s: %s\n", progname, err);
148 <                exit(1);
148 >                return(1);
149          }
150          if (i == argc)
151                  normaspect(viewaspect(&vw), &pa, &rs.xr, &rs.yr);
152          if (getdim) {
153 <                printf("-x %d -y %d -ld%c\n", rs.xr, rs.yr,
154 <                                (i+1 == argc) & (vw.vaft > FTINY) ? '+' : '-');
155 <                exit(0);
153 >                printf("-x %d -y %d%s\n", rs.xr, rs.yr,
154 >                                (vw.vaft > FTINY) ? " -ld+" : "");
155 >                return(0);
156          }
157          if (fromstdin)
158                  pix2rays(stdin);
159          else
160                  putrays();
161 <        exit(0);
161 >        return(0);
162   userr:
163          fprintf(stderr,
164          "Usage: %s [ -i -u -f{a|f|d} -c rept | -d ] { view opts .. | picture [zbuf] }\n",
165                          progname);
166 <        exit(1);
166 >        return(1);
167   }
168  
169  
# Line 212 | Line 216 | pix2rays(
216                  for (c = repeatcnt; c-- > 0; ) {
217                          jitterloc(loc);
218                          d = viewray(rorg, rdir, &vw, loc[0], loc[1]);
219 <                        if (d < -FTINY)
219 >                        if (d < -FTINY || !jitteraperture(rorg, rdir, &vw, pd))
220                                  rorg[0] = rorg[1] = rorg[2] =
221                                  rdir[0] = rdir[1] = rdir[2] = 0.;
222                          else if (zfd >= 0)
# Line 269 | Line 273 | putrays(void)
273                          pix2loc(loc, &rs, si, sc);
274                          jitterloc(loc);
275                          d = viewray(rorg, rdir, &vw, loc[0], loc[1]);
276 <                        if (d < -FTINY)
276 >                        if (d < -FTINY || !jitteraperture(rorg, rdir, &vw, pd))
277                                  rorg[0] = rorg[1] = rorg[2] =
278                                  rdir[0] = rdir[1] = rdir[2] = 0.;
279                          else if (zfd >= 0)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines