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

Comparing ray/src/px/ra_ps.c (file contents):
Revision 2.1 by greg, Mon Jul 13 09:28:01 1992 UTC vs.
Revision 2.4 by greg, Fri Aug 14 13:27:52 1992 UTC

# Line 4 | Line 4
4   static char SCCSid[] = "$SunId$ LBL";
5   #endif
6  
7 /* Copyright (c) 1992 Regents of the University of California */
8
9 #ifndef lint
10 static char SCCSid[] = "$SunId$ LBL";
11 #endif
12
7   /*
8   *  Radiance picture to PostScript file translator -- one way!
9   */
# Line 30 | Line 24 | int  wrongformat = 0;                  /* input in wrong format? */
24   double  pixaspect = 1.0;                /* pixel aspect ratio */
25  
26   int  bradj = 0;                         /* brightness adjustment */
27 + int  ncopies = 1;                       /* number of copies */
28  
29   char  *progname;
30  
# Line 65 | Line 60 | char  *argv[];
60                                          goto userr;
61                                  bradj = atoi(argv[++i]);
62                                  break;
63 +                        case 'n':               /* number of copies */
64 +                                ncopies = atoi(argv[++i]);
65 +                                break;
66                          default:
67                                  goto userr;
68                          }
# Line 116 | Line 114 | char  *name;
114   {
115          int  landscape = 0;
116          double  pwidth, pheight;
117 +        double  iwidth, iheight;
118  
119          printf("%%!\n");
120          printf("%%%%Title: %s\n", name);
121          printf("%%%%Creator: %s\n", progname);
122 <        printf("%%%%Pages: 1\n");
122 >        printf("%%%%Pages: %d\n", ncopies);
123          if (landscape = xmax > pixaspect*ymax)
124                  printf("%%%%Landscape\n");
125          else
# Line 128 | Line 127 | char  *name;
127          printf("%%%%EndComments\n");
128          printf("gsave\n");
129          printf("64 dict begin\n");
130 +                                        /* define image reader */
131 +        PSprocdef("read6bit");
132                                          /* set up transformation matrix */
133 <        printf("%f %f translate 1 -1 scale\n", HMARGIN, VMARGIN+PHEIGHT);
133 >        printf("%f %f translate\n", HMARGIN, VMARGIN);
134          if (PWIDTH > PHEIGHT ^ landscape) {
135                  printf("0 %f translate\n", PHEIGHT);
136 <                printf("90 rotate\n");
136 >                printf("-90 rotate\n");
137                  pwidth = PHEIGHT;
138                  pheight = PWIDTH;
139          } else {
# Line 140 | Line 141 | char  *name;
141                  pheight = PHEIGHT;
142          }
143          if (pheight/pwidth > pixaspect*ymax/xmax) {
144 <                printf("%f %f matrix scale\n", pwidth/xmax,
145 <                                pixaspect*pwidth/xmax);
145 <                printf("0 %f matrix translate\n",
146 <                                .5*(pheight-pwidth*pixaspect*ymax/xmax));
144 >                iwidth = pwidth;
145 >                iheight = pwidth*pixaspect*ymax/xmax;
146          } else {
147 <                printf("%f %f matrix scale\n", pheight/(ymax*pixaspect),
148 <                                pheight/ymax);
150 <                printf("%f 0 matrix translate\n",
151 <                                .5*(pwidth-pheight*xmax/(ymax*pixaspect)));
147 >                iheight = pheight;
148 >                iwidth = pheight*xmax/(pixaspect*ymax);
149          }
150 <        printf("matrix concatmatrix /imat exch def\n");
151 <        PSprocdef("read6bit");
150 >        printf("%f %f translate\n", (pwidth-iwidth)*.5, (pheight-iheight)*.5);
151 >        printf("%f %f scale\n", iwidth, iheight);
152          printf("%%%%EndProlog\n");
153 <        printf("%d %d 8 imat {read6bit} image", xmax, ymax);
153 >                                        /* start image procedure */
154 >        printf("%d %d 8 [%d 0 0 %d 0 %d] {read6bit} image", xmax, ymax,
155 >                        xmax, -ymax, ymax);
156   }
157  
158  
159   PStrailer()                     /* print PostScript trailer */
160   {
161          puts("%%Trailer");
162 <        puts("end");
162 >        if (ncopies > 1)
163 >                printf("/#copies %d def\n", ncopies);
164          puts("showpage");
165 <        puts("grestore");
165 >        puts("end");
166          puts("%%EOF");
167   }
168  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines