File Coverage

lib/Graphics/Toolkit/Color/Space/Instance/OKHWB.pm
Criterion Covered Total %
statement 16 16 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 23 25 92.0


line stmt bran cond sub pod time code
1              
2             # OKHWB color space, Conveter under Copyright (c) 2021 Björn Ottosson, see LICENSE.OK
3              
4             package Graphics::Toolkit::Color::Space::Instance::OKHWB;
5 16     16   261811 use v5.12;
  16         47  
6 16     16   59 use warnings;
  16         30  
  16         709  
7 16     16   435 use Graphics::Toolkit::Color::Space;
  16         17  
  16         3134  
8              
9             sub from_hwb {
10 6     6 0 12 my ($hwb) = shift;
11 6         16 my $v = 1 - $hwb->[2];
12 6 100       23 my $s = ($v < 0.000000001) ? 0 : (1 - ($hwb->[1] / $v));
13 6         23 return [$hwb->[0], $s, $v];
14             }
15             sub to_hwb {
16 6     6 0 12 my ($hsv) = shift;
17 6         16 my $w = (1 - $hsv->[1]) * $hsv->[2];
18 6         12 my $b = 1 - $hsv->[2];
19 6         25 return [$hsv->[0], $w, $b];
20             }
21              
22             Graphics::Toolkit::Color::Space->new(
23             name => 'OKHWB',
24             family => 'HWB',
25             axis => [qw/hue whiteness blackness/],
26             type => [qw/angular linear linear/],
27             range => [360, 1, 1],
28             precision => 5,
29             convert => {OKHSV => [\&from_hwb, \&to_hwb]},
30             );