Bump version and update Changes
[convert-color-husl.git] / lib / Convert / Color / HUSLp.pm
CommitLineData
1f72b051
MG
1package Convert::Color::HUSLp;
2
4e59696a 3use 5.008009;
1f72b051
MG
4use strict;
5use warnings;
6use parent qw/Convert::Color::HUSL/;
7
8use Convert::Color::XYZ;
9use Convert::Color::LUV;
10use Convert::Color::LCh;
11use List::Util qw/min/;
12use Math::Trig qw/:pi/;
13
14BEGIN {
15 *_get_bounds = *Convert::Color::HUSL::_get_bounds; ## no critic (ProtectPrivate)
16}
17
a17d2402 18our $VERSION = '1.000';
1f72b051
MG
19
20__PACKAGE__->register_color_space('huslp');
21
22sub _intersect_line_line {
23 my ($l1, $l2) = @_;
24 ($l1->[1] - $l2->[1]) / ($l2->[0] - $l1->[0])
25}
26
27sub _distance_from_pole {
28 my ($x, $y) = @_;
29 sqrt $x * $x + $y * $y
30}
31
32sub max_chroma_for_lh {
33 my ($self, $l) = @_;
34 min map {
35 my ($m, $n) = @$_;
36 my $x = _intersect_line_line $_, [-1 / $m, 0];
37 _distance_from_pole $x, $n + $x * $m
38 } _get_bounds $l
39}
40
411;
42__END__
43
44=encoding utf-8
45
46=head1 NAME
47
48Convert::Color::HUSLp - a color value in the HUSLp color space
49
50=head1 SYNOPSIS
51
52 use Convert::Color::HUSLp;
53 my $reddish = Convert::Color::HUSLp->new(12.17705, 100, 53.23712);
54 my $greenish = Convert::Color::HUSLp->new('127.71501,100,87.73552');
55
56 use Convert::Color;
57 my $bluish = Convert::Color->new('huslp:265.87432,100,32.30087');
58
59 say $reddish->H; # 12.17705
60 say $reddish->S; # 100
61 say $reddish->L; # 53.23712
62 say join ',', $bluish->hsl; # 265.87432,100,32.30087
63
64=head1 DESCRIPTION
65
d1ec9979 66Objects of this class represent colors in the HUSLp color space, revision 4.
1f72b051
MG
67
68Methods:
69
70=over
71
72=item Convert::Color::HUSLp->B<new>(I<$h>, I<$s>, I<$l>)
73
74Construct a color from its components.
75
76=item Convert::Color::HUSLp->B<new>(I<"$h,$s,$l">)
77
78Construct a color from a string. The string should contain the three
79components, separated by commas.
80
81=item $huslp->B<H>
82
83=item $huslp->B<S>
84
85=item $huslp->B<L>
86
87Accessors for the three components of the color.
88
89=item $huslp->B<hsl>
90
91Returns the three components as a list.
92
93=back
94
95=head1 SEE ALSO
96
97L<Convert::Color>, L<http://www.husl-colors.org/>
98
99=head1 AUTHOR
100
101Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
102
103=head1 COPYRIGHT AND LICENSE
104
105Copyright (C) 2015 by Marius Gavrilescu
106
107This library is free software; you can redistribute it and/or modify
108it under the same terms as Perl itself, either Perl version 5.20.2 or,
109at your option, any later version of Perl 5 you may have available.
110
111
112=cut
This page took 0.015215 seconds and 4 git commands to generate.