ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/colorscale.c
Revision: 2.2
Committed: Thu Dec 19 14:51:47 1991 UTC (32 years, 4 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 2.1: +0 -1 lines
Log Message:
eliminated atof declarations for NeXT

File Contents

# User Rev Content
1 greg 1.1 /* Copyright (c) 1987 Regents of the University of California */
2    
3     #ifndef lint
4     static char SCCSid[] = "$SunId$ LBL";
5     #endif
6    
7     /*
8     * colorscale.c - program to produce color pallets
9     *
10     * 9/9/87
11     */
12    
13     #include <stdio.h>
14    
15     #include "color.h"
16    
17     int primary = -1;
18     double prival = 0.0;
19    
20    
21     main(argc, argv)
22     int argc;
23     char *argv[];
24     {
25     int i;
26    
27     for (i = 1; i < argc && argv[i][0] == '-'; i++)
28     switch (argv[i][1]) {
29     case 'r':
30     primary = RED;
31     prival = atof(argv[++i]);
32     break;
33     case 'g':
34     primary = GRN;
35     prival = atof(argv[++i]);
36     break;
37     case 'b':
38     primary = BLU;
39     prival = atof(argv[++i]);
40     break;
41     default:
42     goto userr;
43     }
44     if (primary < 0 || i < argc)
45     goto userr;
46     printargs(argc, argv, stdout);
47     printf("\n");
48     printf("-Y 256 +X 256\n");
49     colorscale();
50     exit(0);
51     userr:
52     fprintf(stderr, "Usage: %s -r|-g|-b value\n", argv[0]);
53     exit(1);
54     }
55    
56    
57     colorscale() /* output our color scale */
58     {
59     COLOR scanline[256];
60     int j;
61     register int i;
62    
63     for (j = 256-1; j >= 0; j--) {
64     for (i = 0; i < 256; i++)
65     switch (primary) {
66     case RED:
67     setcolor(scanline[i],prival,i/256.0,j/256.0);
68     break;
69     case GRN:
70     setcolor(scanline[i],i/256.0,prival,j/256.0);
71     break;
72     case BLU:
73     setcolor(scanline[i],i/256.0,j/256.0,prival);
74     break;
75     }
76     if (fwritescan(scanline, 256, stdout) < 0)
77     goto writerr;
78     }
79     return;
80     writerr:
81     fprintf(stderr, "write error in colorscale\n");
82     exit(1);
83     }
84    
85    
86     printargs(ac, av, fp) /* print arguments to a file */
87     int ac;
88     char **av;
89     FILE *fp;
90     {
91     while (ac-- > 0) {
92     fputs(*av++, fp);
93     putc(' ', fp);
94     }
95     putc('\n', fp);
96     }