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.10 by greg, Thu Sep 13 09:46:00 1990 UTC vs.
Revision 1.13 by greg, Sat Dec 8 10:14:33 1990 UTC

# Line 17 | Line 17 | static char SCCSid[] = "$SunId$ LBL";
17   #include  "color.h"
18  
19   extern char  *malloc();
20 + extern float  *matchlamp();
21  
22   #define  CHECKRAD       1.5     /* radius to check for filtering */
23  
# Line 44 | Line 45 | double  spread = 1e-4;         /* spread for star points */
45  
46   char  *tfname = NULL;
47  
48 + char  *lampdat = "lamp.tab";    /* lamp data file */
49 +
50   int  xres, yres;                /* resolution of input */
51   double  inpaspect = 1.0;        /* pixel aspect ratio of input */
52 + int  correctaspect = 0;         /* aspect ratio correction? */
53  
54   int  xrad;                      /* x window size */
55   int  yrad;                      /* y window size */
# Line 66 | Line 70 | char  **argv;
70          extern long  ftell();
71          extern int  quit(), headline();
72          FILE  *fin;
73 +        float  *lampcolor;
74 +        char  *lamptype = NULL;
75          long  fpos;
76          double  outaspect = 0.0;
77          double  d;
# Line 103 | Line 109 | char  **argv;
109                                  } else
110                                          nrows = atoi(argv[i]);
111                                  break;
112 +                        case 'c':
113 +                                correctaspect = !correctaspect;
114 +                                break;
115                          case 'p':
116                                  i++;
117                                  outaspect = atof(argv[i]);
# Line 130 | Line 139 | char  **argv;
139                                  }
140                                  i++;
141                                  break;
142 +                        case 'f':
143 +                                lampdat = argv[++i];
144 +                                break;
145 +                        case 't':
146 +                                lamptype = argv[++i];
147 +                                break;
148                          case '1':
149                                  singlepass = 1;
150                                  break;
# Line 190 | Line 205 | char  **argv;
205                  fprintf(stderr, "%s: bad # file arguments\n", progname);
206                  quit(1);
207          }
208 +                                        /* get lamp data (if necessary) */
209 +        if (lamptype != NULL) {
210 +                if (loadlamps(lampdat) < 0)
211 +                        quit(1);
212 +                if ((lampcolor = matchlamp(lamptype)) == NULL) {
213 +                        fprintf(stderr, "%s: unknown lamp type\n", lamptype);
214 +                        quit(1);
215 +                }
216 +                colval(exposure,RED) /= lampcolor[0];
217 +                colval(exposure,GRN) /= lampcolor[1];
218 +                colval(exposure,BLU) /= lampcolor[2];
219 +                freelamps();
220 +        }
221                                          /* get header */
222          getheader(fin, headline);
223                                          /* add new header info. */
# Line 281 | Line 309 | FILE  *in;
309                          fprintf(stderr, "%s: warning - partial frame (%d%%)\n",
310                                          progname, 100*i/yres);
311                          yres = i;
312 +                        y_r = (double)nrows/yres;
313                          break;
314                  }
315                  pass1scan(scan, i);
# Line 367 | Line 396 | scan2init()                    /* prepare scanline arrays */
396                  quit(1);
397          }
398                                          /* record pixel aspect and exposure */
399 <        d = x_c / y_r;
400 <        if (d < .99 || d > 1.01)
401 <                fputaspect(d, stdout);
399 >        if (!correctaspect) {
400 >                d = x_c / y_r;
401 >                if (d < .99 || d > 1.01)
402 >                        fputaspect(d, stdout);
403 >        }
404          d = bright(exposure);
405          if (d < .995 || d > 1.005)
406                  fputexpos(d, stdout);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines