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

Comparing ray/src/px/pvalue.c (file contents):
Revision 2.3 by greg, Fri May 8 10:58:52 1992 UTC vs.
Revision 2.4 by greg, Fri May 8 11:55:42 1992 UTC

# Line 41 | Line 41 | int  wrongformat = 0;          /* wrong input format? */
41  
42   double  gamcor = 1.0;           /* gamma correction */
43  
44 + int  ord[3] = {RED, GRN, BLU};  /* RGB ordering */
45 + int  rord[4];                   /* reverse ordering */
46 +
47   COLOR  exposure = WHTCOLOR;
48  
49   char  *progname;
# Line 79 | Line 82 | char  **argv;
82                                  if (argv[i][0] == '+')
83                                          gamcor = 1.0/gamcor;
84                                  break;
85 +                        case 'R':               /* reverse byte sequence */
86 +                                if (argv[i][0] == '-') {
87 +                                        ord[0]=BLU; ord[1]=GRN; ord[2]=RED;
88 +                                } else {
89 +                                        ord[0]=RED; ord[1]=GRN; ord[2]=BLU;
90 +                                }
91 +                                break;
92                          case 'r':               /* reverse conversion */
93                                  reverse = argv[i][0] == '-';
94                                  break;
# Line 145 | Line 155 | unkopt:
155                          fmtid = "8-bit_grey";
156                  else
157                          fmtid = "24-bit_rgb";
158 <
158 >                                        /* assign reverse ordering */
159 >        rord[ord[0]] = 0;
160 >        rord[ord[1]] = 1;
161 >        rord[ord[2]] = 2;
162 >                                        /* get input */
163          if (i == argc) {
164                  fin = stdin;
165          } else if (i == argc-1) {
# Line 333 | Line 347 | FILE  *fp;
347  
348          if (fscanf(fp, "%lf %lf %lf", &vd[0], &vd[1], &vd[2]) != 3)
349                  return(-1);
350 <        setcolor(col, vd[0], vd[1], vd[2]);
350 >        setcolor(col, vd[rord[RED]], vd[rord[GRN]], vd[rord[BLU]]);
351          return(0);
352   }
353  
# Line 346 | Line 360 | FILE  *fp;
360  
361          if (fread((char *)vd, sizeof(double), 3, fp) != 3)
362                  return(-1);
363 <        setcolor(col, vd[0], vd[1], vd[2]);
363 >        setcolor(col, vd[rord[RED]], vd[rord[GRN]], vd[rord[BLU]]);
364          return(0);
365   }
366  
# Line 359 | Line 373 | FILE  *fp;
373  
374          if (fread((char *)vf, sizeof(float), 3, fp) != 3)
375                  return(-1);
376 <        setcolor(col, vf[0], vf[1], vf[2]);
376 >        setcolor(col, vf[rord[RED]], vf[rord[GRN]], vf[rord[BLU]]);
377          return(0);
378   }
379  
# Line 372 | Line 386 | FILE  *fp;
386  
387          if (fscanf(fp, "%d %d %d", &vi[0], &vi[1], &vi[2]) != 3)
388                  return(-1);
389 <        setcolor(col,(vi[0]+.5)/256.,(vi[1]+.5)/256.,(vi[2]+.5)/256.);
389 >        setcolor(col, (vi[rord[RED]]+.5)/256.,
390 >                        (vi[rord[GRN]]+.5)/256., (vi[rord[BLU]]+.5)/256.);
391          return(0);
392   }
393  
# Line 385 | Line 400 | FILE  *fp;
400  
401          if (fread((char *)vb, sizeof(BYTE), 3, fp) != 3)
402                  return(-1);
403 <        setcolor(col,(vb[0]+.5)/256.,(vb[1]+.5)/256.,(vb[2]+.5)/256.);
403 >        setcolor(col, (vb[rord[RED]]+.5)/256.,
404 >                        (vb[rord[GRN]]+.5)/256., (vb[rord[BLU]]+.5)/256.);
405          return(0);
406   }
407  
# Line 464 | Line 480 | COLOR  col;
480   FILE  *fp;
481   {
482          fprintf(fp, "%15.3e %15.3e %15.3e\n",
483 <                        colval(col,RED),
484 <                        colval(col,GRN),
485 <                        colval(col,BLU));
483 >                        colval(col,ord[0]),
484 >                        colval(col,ord[1]),
485 >                        colval(col,ord[2]));
486  
487          return(ferror(fp) ? -1 : 0);
488   }
# Line 478 | Line 494 | FILE  *fp;
494   {
495          float  vf[3];
496  
497 <        vf[0] = colval(col,RED);
498 <        vf[1] = colval(col,GRN);
499 <        vf[2] = colval(col,BLU);
497 >        vf[0] = colval(col,ord[0]);
498 >        vf[1] = colval(col,ord[1]);
499 >        vf[2] = colval(col,ord[2]);
500          fwrite((char *)vf, sizeof(float), 3, fp);
501  
502          return(ferror(fp) ? -1 : 0);
# Line 493 | Line 509 | FILE  *fp;
509   {
510          double  vd[3];
511  
512 <        vd[0] = colval(col,RED);
513 <        vd[1] = colval(col,GRN);
514 <        vd[2] = colval(col,BLU);
512 >        vd[0] = colval(col,ord[0]);
513 >        vd[1] = colval(col,ord[1]);
514 >        vd[2] = colval(col,ord[2]);
515          fwrite((char *)vd, sizeof(double), 3, fp);
516  
517          return(ferror(fp) ? -1 : 0);
# Line 507 | Line 523 | COLOR  col;
523   FILE  *fp;
524   {
525          fprintf(fp, "%d %d %d\n",
526 <                        (int)(colval(col,RED)*256.),
527 <                        (int)(colval(col,GRN)*256.),
528 <                        (int)(colval(col,BLU)*256.));
526 >                        (int)(colval(col,ord[0])*256.),
527 >                        (int)(colval(col,ord[1])*256.),
528 >                        (int)(colval(col,ord[2])*256.));
529  
530          return(ferror(fp) ? -1 : 0);
531   }
# Line 522 | Line 538 | FILE  *fp;
538          register int  i;
539          BYTE  vb[3];
540  
541 <        i = colval(col,RED)*256.;
541 >        i = colval(col,ord[0])*256.;
542          vb[0] = min(i,255);
543 <        i = colval(col,GRN)*256.;
543 >        i = colval(col,ord[1])*256.;
544          vb[1] = min(i,255);
545 <        i = colval(col,BLU)*256.;
545 >        i = colval(col,ord[2])*256.;
546          vb[2] = min(i,255);
547          fwrite((char *)vb, sizeof(BYTE), 3, fp);
548  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines