NAME
Math::ColorRGBA - Perl class to represent rgba colors
TREE
-+- Math::Vector -+- Math::Vec4 -+- Math::ColorRGBA
REQUIRES
SEE ALSO
Math::Color, Math::ColorRGBA, Math::Image, Math::Vec2, Math::Vec3, Math::Rotation
SYNOPSIS
use Math::ColorRGBA;
my $c = new Math::ColorRGBA; # Make a new Color
my $c1 = new Math::ColorRGBA(0,1,0,0);
DESCRIPTION
Default value
0 0 0 0
OPERATORS
Summary
METHODS
new(r,g,b,a)
r, g, b, a are given on [0, 1].
my $c = new Math::ColorRGBA;
my $c2 = new Math::ColorRGBA(0, 0.5, 1, 0);
my $c3 = new Math::ColorRGBA([0, 0.5, 1, 1]);
copy
Makes a copy
$c2 = $c1->copy;
setValue(r,g,b,a)
Sets the value of the color. r, g, b, a are given on [0, 1].
$c1->setValue(0, 0.2, 1, 0);
setRGB
Sets the value of the color from a 3 component array ref ie. (Math::Color).
$c4->setRGB(new Math::Color(0.1,0.2,0.3));
setRed(r)
Sets the first value of the color r is given on [0, 1].
$c1->setRed(1);
setGreen(g)
Sets the second value of the color. g is given on [0, 1].
$c1->setGreen(0.2);
setBlue(b)
Sets the third value of the color. b is given on [0, 1].
$c1->setZ(0.3);
setAlpha(alpha)
Sets the first value of the vector
$v1->setAlpha(1);
getValue
Returns the value of the color (r, g, b, a) as a 4 components array.
@v = $c1->getValue;
getRGB
Returns the rgb value of the color (r, g, b) as color (Math::Color).
$c = $c4->getRGB;
getRed
Returns the first value of the color.
$r = $c1->getRed;
getGreen
Returns the second value of the color.
$g = $c1->getGreen;
getBlue
Returns the third value of the color.
$b = $c1->getBlue;
getAlpha
Returns the fourth value of the color.
$a = $v1->getAlpha;
setHSV(h,s,v,a)
h is given on [0, 2 PI]. s, v are given on [0, 1]. RGB are each returned on [0, 1].
$c->setHSV(1/12,1,1); # 1 0.5 0
$c->setHSV(h,s,v);
$c->setHSV(h,s,v,a);
getHSV
h is in [0, 2 PI]. s, v are each returned on [0, 1].
@hsv = $c->getHSV;
inverse
Returns the inverse of the color. Inverse the first three componets (r,g,b) of the color. This is used to overload the '~' operator.
$v = new Math::ColorRGBA(0, 0.1, 1, 0.123);
$v = $v1->inverse; # 1 0.9 0 0.123
$v = ~$v1; # 1 0.9 0 0.123
add(Vec3)
Adds the RGB components. Alpha is taken from the first color.
$v = $v1->add($v2);
$v = $v1 + $v2;
$v = [8, 2, 4] + $v1;
$v1 += $v2;
subtract(Vec3)
Subtracts the RGB components of the two colors. Alpha is taken from the first color.
$v = $v1->subtract($v2);
$v = $v1 - $v2;
$v = [8, 2, 4] - $v1;
$v1 -= $v2;
multiply(Vec3 or scalar)
This is used to overload the '*' operator. Multiplies the RGB components. Alpha is left unchanged.
$v = $v1 * 2;
$v = $v1 * [3, 5, 4];
$v = [8, 2, 4] * $v1;
$v = $v1 * $v1;
$v1 *= 2;
$v = $v1->multiply(2);
divide(Vec3 or scalar)
Divides the RGB components. Alpha is left unchanged. This is used to overload the '/' operator.
$v = $v1 / 2;
$v1 /= 2;
$v = $v1 / [3, 7, 4];
$v = [8, 2, 4] / $v1;
$v = $v1 / $v1; # unit vector
$v = $v1->divide(2);
toString
Returns a string representation of the color. This is used to overload the '""' operator, so that color may be freely interpolated in strings.
my $c = new Math::ColorRGBA(0.1, 0.2, 0.3);
print $c->toString; # "0.1, 0.2, 0.3"
print "$c"; # "0.1, 0.2, 0.3"
SEE ALSO
Math::Color, Math::ColorRGBA, Math::Image, Math::Vec2, Math::Vec3, Math::Rotation
BUGS & SUGGESTIONS
If you run into a miscalculation, need some sort of feature or an additional holiday, or if you know of any new changes to the funky math, please drop the author a note.
ARRANGED BY
Holger Seelig holger.seelig@yahoo.de
COPYRIGHT
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.