ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/meta/plot4.c
Revision: 1.3
Committed: Mon Oct 27 10:28:59 2003 UTC (20 years, 6 months ago) by schorsch
Content type: text/plain
Branch: MAIN
Changes since 1.2: +2 -2 lines
Log Message:
Various compatibility fixes.

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id: plot4.c,v 1.2 2003/08/01 14:14:24 schorsch Exp $";
3 #endif
4 /*
5 * plot4.c - program to put four metafile pages onto one.
6 *
7 * Greg Ward
8 * 7/10/86
9 */
10
11 #include "rtprocess.h"
12 #include "meta.h"
13
14
15 #define OUTFILT "pexpand +OCIms" /* output filter */
16
17 #define SEGNAME "plot4seg" /* segment name */
18
19
20 extern FILE *pout; /* the output stream */
21
22 char *progname;
23
24
25 main(argc, argv)
26 int argc;
27 char *argv[];
28 {
29 FILE *fp;
30 int i;
31
32 progname = argv[0];
33
34 pout = popen(OUTFILT, "w");
35
36 if (argc > 1)
37 for (i = 1; i < argc; i++) {
38 fp = efopen(argv[i], "r");
39 plot4(fp);
40 fclose(fp);
41 }
42 else
43 plot4(stdin);
44
45 pglob(PEOF, 0200, NULL);
46
47 return(pclose(pout));
48 }
49
50
51 plot4(fp) /* put a file into its place on page */
52 FILE *fp;
53 {
54 static int nplts = 0;
55 PRIMITIVE curp;
56
57 pglob(POPEN, 0, SEGNAME);
58
59 while (readp(&curp, fp))
60 if (curp.com == PEOP) {
61 pglob(PCLOSE, 0200, NULL);
62 doseg(nplts++ % 4);
63 pglob(POPEN, 0, SEGNAME);
64 } else
65 writep(&curp, pout);
66
67 pglob(PCLOSE, 0200, NULL);
68 }
69
70
71 doseg(n) /* do segment number n */
72 int n;
73 {
74 switch (n) {
75 case 0: /* upper left */
76 pprim(PSEG, 0, 0, XYSIZE/2, XYSIZE/2-1, XYSIZE-1, SEGNAME);
77 break;
78 case 1: /* upper right */
79 pprim(PSEG, 0, XYSIZE/2, XYSIZE/2, XYSIZE-1, XYSIZE-1, SEGNAME);
80 break;
81 case 2: /* lower left */
82 pprim(PSEG, 0, 0, 0, XYSIZE/2-1, XYSIZE/2-1, SEGNAME);
83 break;
84 case 3: /* lower right, end page */
85 pprim(PSEG, 0, XYSIZE/2, 0, XYSIZE-1, XYSIZE/2-1, SEGNAME);
86 pglob(PEOP, 0200, NULL);
87 break;
88 }
89 }