ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/falsecolor.csh
Revision: 2.5
Committed: Thu Dec 17 12:32:49 1992 UTC (31 years, 4 months ago) by greg
Content type: application/x-csh
Branch: MAIN
Changes since 2.4: +2 -2 lines
Log Message:
fixed label offsets

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 2.4 set loff=0
19 greg 1.5 set legwidth=100
20     set legheight=200
21 greg 1.1 while ($#argv > 0)
22     switch ($argv[1])
23     case -m:
24     shift argv
25     set mult="$argv[1]"
26     breaksw
27     case -s:
28     shift argv
29     set scale="$argv[1]"
30     breaksw
31     case -l:
32     shift argv
33     set label="$argv[1]"
34     breaksw
35 greg 1.3 case -log:
36     shift argv
37     set decades=$argv[1]
38     breaksw
39 greg 1.1 case -r:
40     shift argv
41     set redv="$argv[1]"
42     breaksw
43     case -g:
44     shift argv
45     set grnv="$argv[1]"
46     breaksw
47     case -b:
48     shift argv
49     set bluv="$argv[1]"
50     breaksw
51     case -i:
52     shift argv
53     set picture="$argv[1]"
54     breaksw
55     case -p:
56     shift argv
57     set cpict="$argv[1]"
58     breaksw
59     case -ip:
60     case -pi:
61 greg 1.2 shift argv
62 greg 1.1 set picture="$argv[1]"
63     set cpict="$argv[1]"
64     breaksw
65     case -cl:
66     set docont=a
67 greg 2.5 set loff=12
68 greg 1.1 breaksw
69     case -cb:
70     set docont=b
71 greg 2.5 set loff=13
72 greg 1.1 breaksw
73 greg 2.3 case -e:
74     set doextrem
75     set needfile
76     breaksw
77 greg 1.1 case -n:
78 greg 1.2 shift argv
79 greg 1.1 set ndivs="$argv[1]"
80 greg 1.2 breaksw
81 greg 1.1 default:
82 greg 1.3 echo bad option "'$argv[1]'" >/dev/tty
83 greg 1.1 exit 1
84     endsw
85     shift argv
86     end
87 greg 1.5 mkdir $td
88     cat > $td/pc0.cal <<_EOF_
89 greg 1.8 PI : 3.14159265358979323846 ;
90 greg 1.1 scale : $scale ;
91     mult : $mult ;
92     ndivs : $ndivs ;
93    
94     or(a,b) : if(a,a,b);
95     EPS : 1e-7;
96     neq(a,b) : if(a-b-EPS,1,b-a-EPS);
97 greg 1.7 btwn(a,x,b) : if(a-x,-1,b-x);
98 greg 1.5 clip(x) : if(x-1,1,if(x,x,0));
99 greg 1.1 frac(x) : x - floor(x);
100 greg 2.2 boundary(a,b) : neq(floor(ndivs*a+.5),floor(ndivs*b+.5));
101 greg 1.1
102 greg 1.6 isconta = if(btwn(0,v,1),or(boundary(vleft,vright),boundary(vabove,vbelow)),-1);
103 greg 1.5 iscontb = if(btwn(0,v,1),btwn(.4,frac(ndivs*v),.6),-1);
104 greg 1.1
105 greg 1.5 ro = if(in,clip($redv),ra);
106     go = if(in,clip($grnv),ga);
107     bo = if(in,clip($bluv),ba);
108    
109     ra = 0;
110     ga = 0;
111     ba = 0;
112    
113     in = 1;
114     _EOF_
115     cat > $td/pc1.cal <<_EOF_
116     norm : mult/scale/le(1);
117    
118 greg 1.4 v = map(li(1)*norm);
119 greg 1.5
120 greg 1.4 vleft = map(li(1,-1,0)*norm);
121     vright = map(li(1,1,0)*norm);
122     vabove = map(li(1,0,1)*norm);
123     vbelow = map(li(1,0,-1)*norm);
124 greg 1.1
125 greg 1.5 map(x) = x;
126 greg 1.1
127     ra = ri(nfiles);
128     ga = gi(nfiles);
129     ba = bi(nfiles);
130     _EOF_
131 greg 1.5 set pc0args=(-f $td/pc0.cal)
132     set pc1args=(-f $td/pc1.cal)
133 greg 1.1 if ($?docont) then
134 greg 1.5 set pc0args=($pc0args -e "in=iscont$docont")
135 greg 1.1 endif
136     if ("$cpict" == "") then
137 greg 1.5 set pc1args=($pc1args -e 'ra=0;ga=0;ba=0')
138 greg 1.1 else if ("$cpict" == "$picture") then
139     set cpict=
140     endif
141 greg 2.3 if ($?needfile && "$picture" == '-') then
142     cat > $td/picture
143     set picture=$td/picture
144     endif
145 greg 1.3 if ($decades > 0) then
146 greg 1.5 set pc1args=($pc1args -e "map(x)=if(x-10^-$decades,log10(x)/$decades+1,0)")
147 greg 1.3 set imap="imap(y)=10^((y-1)*$decades)"
148     else
149     set imap="imap(y)=y"
150     endif
151 greg 1.5 pcomb $pc0args -e 'v=(y+.5)/yres;vleft=v;vright=v' \
152     -e 'vbelow=(y-.5)/yres;vabove=(y+1.5)/yres' \
153     -x $legwidth -y $legheight > $td/scol.pic
154 greg 1.3 ( echo $label; cnt $ndivs \
155     | rcalc -e '$1='"($scale)*imap(($ndivs-.5-"'$1'")/$ndivs)" \
156     -e "$imap" ) \
157 greg 2.3 | psign -s -.15 -cf 1 1 1 -cb 0 0 0 \
158     -h `ev "floor($legheight/$ndivs+.5)"` > $td/slab.pic
159     if ( $?doextrem ) then
160     pextrem -o $picture > $td/extrema
161     set minpos=`sed 2d $td/extrema | rcalc -e '$2=$2;$1=$1+'"$legwidth"`
162     set minval=`rcalc -e '$1=($3*.3+$4*.59+$5*.11)*'"$mult" $td/extrema | sed -e 2d -e 's/\(.....\).*$/\1/'`
163     set maxpos=`sed 1d $td/extrema | rcalc -e '$2=$2;$1=$1+'"$legwidth"`
164     set maxval=`rcalc -e '$1=($3*.3+$4*.59+$5*.11)*'"$mult" $td/extrema | sed -e 1d -e 's/\(.....\).*$/\1/'`
165     psign -s -.15 -a 2 -h 16 $minval > $td/minv.pic
166     psign -s -.15 -a 2 -h 16 $maxval > $td/maxv.pic
167     pcomb $pc0args $pc1args $picture $cpict \
168 greg 2.4 | pcompos $td/scol.pic 0 0 -t .2 $td/slab.pic 0 $loff \
169 greg 2.3 - $legwidth 0 $td/minv.pic $minpos $td/maxv.pic $maxpos
170     else
171     pcomb $pc0args $pc1args $picture $cpict \
172 greg 2.4 | pcompos $td/scol.pic 0 0 -t .2 $td/slab.pic 0 $loff - $legwidth 0
173 greg 2.3 endif
174 greg 1.1 quit:
175 greg 1.5 rm -rf $td