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

Comparing ray/src/px/pfilt.c (file contents):
Revision 1.1 by greg, Thu Feb 2 10:49:26 1989 UTC vs.
Revision 1.5 by greg, Thu Apr 13 07:52:50 1989 UTC

# Line 28 | Line 28 | double  rad = 0.0;             /* output pixel radius for filteri
28   int  nrows = 0;                 /* number of rows for output */
29   int  ncols = 0;                 /* number of columns for output */
30  
31 + double  x_c = 1.0;              /* ratio of output x size to input */
32 + double  y_r = 1.0;              /* ratio of output y size to input */
33 +
34   int  singlepass = 0;            /* true means skip first pass */
35  
36   int  avghot = 0;                /* true means average in bright spots */
# Line 44 | Line 47 | char  *tfname = NULL;
47  
48   int  xres, yres;                /* resolution of input */
49  
47 double  x_c, y_r;               /* conversion factors */
48
50   int  xrad;                      /* x window size */
51   int  yrad;                      /* y window size */
52  
# Line 86 | Line 87 | char  **argv;
87                  if (argv[i][0] == '-')
88                          switch (argv[i][1]) {
89                          case 'x':
90 <                                ncols = atoi(argv[++i]);
90 >                                i++;
91 >                                if (argv[i][0] == '/') {
92 >                                        x_c = 1.0/atof(argv[i]+1);
93 >                                        ncols = 0;
94 >                                } else
95 >                                        ncols = atoi(argv[i]);
96                                  break;
97                          case 'y':
98 <                                nrows = atoi(argv[++i]);
98 >                                i++;
99 >                                if (argv[i][0] == '/') {
100 >                                        y_r = 1.0/atof(argv[i]+1);
101 >                                        nrows = 0;
102 >                                } else
103 >                                        nrows = atoi(argv[i]);
104                                  break;
105                          case 'e':
106                                  if (argv[i+1][0] == '+' || argv[i+1][0] == '-')
# Line 180 | Line 191 | char  **argv;
191                  fprintf(stderr, "%s: bad picture size\n", progname);
192                  quit(1);
193          }
194 <        if (ncols <= 0)
195 <                ncols = xres;
196 <        if (nrows <= 0)
197 <                nrows = yres;
194 >        if (ncols > 0)
195 >                x_c = (double)ncols/xres;
196 >        else
197 >                ncols = x_c*xres + .5;
198 >        if (nrows > 0)
199 >                y_r = (double)nrows/yres;
200 >        else
201 >                nrows = y_r*yres + .5;
202  
203          if (singlepass) {
204                                          /* skip exposure, etc. */
# Line 296 | Line 311 | scan2init()                    /* prepare scanline arrays */
311   {
312          double  e;
313          register int  i;
299
300        x_c = (double)ncols/xres;
301        y_r = (double)nrows/yres;
314  
315          if (rad <= 0.0) {
316                  xrad = xres/ncols/2 + 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines