6 |
|
use File::Temp qw/ tempdir /; |
7 |
|
use POSIX qw/ floor /; |
8 |
|
|
9 |
< |
my @palettes = ('def', 'spec', 'pm3d', 'hot'); |
9 |
> |
my @palettes = ('def', 'spec', 'pm3d', 'hot', 'eco'); |
10 |
|
|
11 |
|
my $mult = 179.0; # Multiplier. Default W/sr/m2 -> cd/m2 |
12 |
|
my $label = 'cd/m2'; # Units shown in legend |
37 |
|
$legheight = shift; |
38 |
|
} elsif (m/-m/) { # Multiplier |
39 |
|
$mult = shift; |
40 |
+ |
} elsif (m/-spec/) { |
41 |
+ |
die("depricated option '-spec'. Please use '-pal spec' instead."); |
42 |
|
} elsif (m/-s/) { # Scale |
43 |
|
$scale = shift; |
44 |
|
if ($scale =~ m/[aA].*/) { |
151 |
|
hot_red(x) = clip(3*x) ^ gamma; |
152 |
|
hot_grn(x) = clip(3*x - 1) ^ gamma; |
153 |
|
hot_blu(x) = clip(3*x - 2) ^ gamma; |
154 |
+ |
|
155 |
+ |
eco_red(x) = clip(2*x) ^ gamma; |
156 |
+ |
eco_grn(x) = clip(2*(x-0.5)) ^ gamma; |
157 |
+ |
eco_blu(x) = clip(2*(0.5-x)) ^ gamma; |
158 |
|
|
159 |
|
interp_arr2(i,x,f):(i+1-x)*f(i)+(x-i)*f(i+1); |
160 |
|
interp_arr(x,f):if(x-1,if(f(0)-x,interp_arr2(floor(x),x,f),f(f(0))),f(1)); |