ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/falsecolor.csh
Revision: 2.2
Committed: Mon Apr 6 17:54:11 1992 UTC (32 years ago) by greg
Content type: application/x-csh
Branch: MAIN
Changes since 2.1: +1 -1 lines
Log Message:
changed contour lines to appear on values rather than between

File Contents

# User Rev Content
1 greg 1.1 #!/bin/csh -f
2     # SCCSid "$SunId$ LBL"
3     #
4     # Create false color image with legend
5     #
6 greg 1.5 set td=/usr/tmp/fc$$
7 greg 1.1 onintr quit
8 greg 1.9 set mult=179
9 greg 1.1 set label=Nits
10     set scale=1000
11 greg 1.3 set decades=0
12 greg 1.5 set redv='1.6*v-.6'
13     set grnv='if(v-.375,1.6-1.6*v,8/3*v)'
14     set bluv='1-8/3*v'
15 greg 1.1 set ndivs=8
16     set picture='-'
17     set cpict=
18 greg 1.5 set legwidth=100
19     set legheight=200
20 greg 1.1 while ($#argv > 0)
21     switch ($argv[1])
22     case -m:
23     shift argv
24     set mult="$argv[1]"
25     breaksw
26     case -s:
27     shift argv
28     set scale="$argv[1]"
29     breaksw
30     case -l:
31     shift argv
32     set label="$argv[1]"
33     breaksw
34 greg 1.3 case -log:
35     shift argv
36     set decades=$argv[1]
37     breaksw
38 greg 1.1 case -r:
39     shift argv
40     set redv="$argv[1]"
41     breaksw
42     case -g:
43     shift argv
44     set grnv="$argv[1]"
45     breaksw
46     case -b:
47     shift argv
48     set bluv="$argv[1]"
49     breaksw
50     case -i:
51     shift argv
52     set picture="$argv[1]"
53     breaksw
54     case -p:
55     shift argv
56     set cpict="$argv[1]"
57     breaksw
58     case -ip:
59     case -pi:
60 greg 1.2 shift argv
61 greg 1.1 set picture="$argv[1]"
62     set cpict="$argv[1]"
63     breaksw
64     case -cl:
65     set docont=a
66     breaksw
67     case -cb:
68     set docont=b
69     breaksw
70     case -n:
71 greg 1.2 shift argv
72 greg 1.1 set ndivs="$argv[1]"
73 greg 1.2 breaksw
74 greg 1.1 default:
75 greg 1.3 echo bad option "'$argv[1]'" >/dev/tty
76 greg 1.1 exit 1
77     endsw
78     shift argv
79     end
80 greg 1.5 mkdir $td
81     cat > $td/pc0.cal <<_EOF_
82 greg 1.8 PI : 3.14159265358979323846 ;
83 greg 1.1 scale : $scale ;
84     mult : $mult ;
85     ndivs : $ndivs ;
86    
87     or(a,b) : if(a,a,b);
88     EPS : 1e-7;
89     neq(a,b) : if(a-b-EPS,1,b-a-EPS);
90 greg 1.7 btwn(a,x,b) : if(a-x,-1,b-x);
91 greg 1.5 clip(x) : if(x-1,1,if(x,x,0));
92 greg 1.1 frac(x) : x - floor(x);
93 greg 2.2 boundary(a,b) : neq(floor(ndivs*a+.5),floor(ndivs*b+.5));
94 greg 1.1
95 greg 1.6 isconta = if(btwn(0,v,1),or(boundary(vleft,vright),boundary(vabove,vbelow)),-1);
96 greg 1.5 iscontb = if(btwn(0,v,1),btwn(.4,frac(ndivs*v),.6),-1);
97 greg 1.1
98 greg 1.5 ro = if(in,clip($redv),ra);
99     go = if(in,clip($grnv),ga);
100     bo = if(in,clip($bluv),ba);
101    
102     ra = 0;
103     ga = 0;
104     ba = 0;
105    
106     in = 1;
107     _EOF_
108     cat > $td/pc1.cal <<_EOF_
109     norm : mult/scale/le(1);
110    
111 greg 1.4 v = map(li(1)*norm);
112 greg 1.5
113 greg 1.4 vleft = map(li(1,-1,0)*norm);
114     vright = map(li(1,1,0)*norm);
115     vabove = map(li(1,0,1)*norm);
116     vbelow = map(li(1,0,-1)*norm);
117 greg 1.1
118 greg 1.5 map(x) = x;
119 greg 1.1
120     ra = ri(nfiles);
121     ga = gi(nfiles);
122     ba = bi(nfiles);
123     _EOF_
124 greg 1.5 set pc0args=(-f $td/pc0.cal)
125     set pc1args=(-f $td/pc1.cal)
126 greg 1.1 if ($?docont) then
127 greg 1.5 set pc0args=($pc0args -e "in=iscont$docont")
128 greg 1.1 endif
129     if ("$cpict" == "") then
130 greg 1.5 set pc1args=($pc1args -e 'ra=0;ga=0;ba=0')
131 greg 1.1 else if ("$cpict" == "$picture") then
132     set cpict=
133     endif
134 greg 1.3 if ($decades > 0) then
135 greg 1.5 set pc1args=($pc1args -e "map(x)=if(x-10^-$decades,log10(x)/$decades+1,0)")
136 greg 1.3 set imap="imap(y)=10^((y-1)*$decades)"
137     else
138     set imap="imap(y)=y"
139     endif
140 greg 1.5 pcomb $pc0args -e 'v=(y+.5)/yres;vleft=v;vright=v' \
141     -e 'vbelow=(y-.5)/yres;vabove=(y+1.5)/yres' \
142     -x $legwidth -y $legheight > $td/scol.pic
143 greg 1.3 ( echo $label; cnt $ndivs \
144     | rcalc -e '$1='"($scale)*imap(($ndivs-.5-"'$1'")/$ndivs)" \
145     -e "$imap" ) \
146 greg 1.5 | psign -cf 1 1 1 -cb 0 0 0 -h `ev "floor(2*$legheight/$ndivs+.5)"` \
147     | pfilt -1 -x /2 -y /2 > $td/slab.pic
148     pcomb $pc0args $pc1args $picture $cpict \
149     | pcompos $td/scol.pic 0 0 -t .2 $td/slab.pic 25 0 - $legwidth 0
150 greg 1.1 quit:
151 greg 1.5 rm -rf $td