#include <color.h>
Public Types | |
enum | BlendMethod { BLEND_COMPOSITE = 0, BLEND_STRAIGHT = 1, BLEND_ONTO = 13, BLEND_STRAIGHT_ONTO = 21, BLEND_BEHIND = 12, BLEND_SCREEN = 16, BLEND_OVERLAY = 20, BLEND_HARD_LIGHT = 17, BLEND_MULTIPLY = 6, BLEND_DIVIDE = 7, BLEND_ADD = 4, BLEND_SUBTRACT = 5, BLEND_DIFFERENCE = 18, BLEND_BRIGHTEN = 2, BLEND_DARKEN = 3, BLEND_COLOR = 8, BLEND_HUE = 9, BLEND_SATURATION = 10, BLEND_LUMINANCE = 11, BLEND_ALPHA_BRIGHTEN = 14, BLEND_ALPHA_DARKEN = 15, BLEND_ALPHA_OVER = 19, BLEND_END = 22 } |
typedef ColorReal | value_type |
Public Member Functions | |
const String | get_string (void) const |
Color & | operator+= (const Color &rhs) |
Color & | operator-= (const Color &rhs) |
Color & | operator *= (const float &rhs) |
Color & | operator/= (const float &rhs) |
Color | operator+ (const Color &rhs) const |
Color | operator- (const Color &rhs) const |
Color | operator * (const float &rhs) const |
Color | operator/ (const float &rhs) const |
bool | operator== (const Color &rhs) const |
bool | operator!= (const Color &rhs) const |
Color | operator- () const |
Color | operator~ () const |
Effectively 1.0-color. | |
bool | is_valid () const |
Color | premult_alpha () const |
Color | demult_alpha () const |
Color () | |
Color (const value_type &f) | |
Color (int f) | |
Color (const value_type &R, const value_type &G, const value_type &B, const value_type &A=1) | |
Color (const Color &c, const value_type &A) | |
Color (const Color &c) | |
Copy constructor. | |
const value_type & | get_r () const |
Copy constructor. | |
const value_type & | get_g () const |
Returns the GREEN component. | |
const value_type & | get_b () const |
Returns the BLUE component. | |
const value_type & | get_a () const |
Returns the amount of opacity (alpha). | |
const value_type & | get_alpha () const |
Synonym for get_a(). | |
const String | get_hex () const |
Returns the color as a 6 character hex sting. | |
void | set_hex (String &hex) |
Sets the color's R, G, and B from a 3 or 6 character hex string. | |
Color & | set_r (const value_type &x) |
Sets the RED component to x. | |
Color & | set_g (const value_type &x) |
Sets the GREEN component to x. | |
Color & | set_b (const value_type &x) |
Sets the BLUE component to x. | |
Color & | set_a (const value_type &x) |
Sets the opacity (alpha) to x. | |
Color & | set_alpha (const value_type &x) |
Synonym for set_a(). | |
float | get_y () const |
Returns color's luminance. | |
float | get_u () const |
Returns U component of chromanance. | |
float | get_v () const |
Returns V component of chromanance. | |
float | get_s () const |
Returns the color's saturation. | |
Color & | set_yuv (const float &y, const float &u, const float &v) |
Sets the luminance (y) and chromanance (u and v). | |
Color & | set_y (const float &y) |
Sets color luminance. | |
Color & | set_u (const float &u) |
Set U component of chromanance. | |
Color & | set_v (const float &v) |
Set V component of chromanance. | |
Color & | set_uv (const float &u, const float &v) |
Set the U and V components of chromanance. | |
Color & | set_s (const float &x) |
Sets the color's saturation. | |
Angle | get_hue () const |
Returns the hue of the chromanance. | |
Angle | get_uv_angle () const |
Synonym for get_hue(). | |
Color & | set_hue (const Angle &theta) |
Sets the color's hue. | |
Color & | set_uv_angle (const Angle &theta) |
Synonym for set_hue(). | |
Color & | rotate_uv (const Angle &theta) |
Rotates the chromanance vector by amount specified by theta. | |
Color & | set_yuv (const float &y, const float &s, const Angle &theta) |
Sets the luminance (y) and chromanance (s and theta). | |
Color | clamped () const |
Clamps a color so that its values are in range. Ignores attempting to visualize negative colors. | |
Color | clamped_negative () const |
Clamps a color so that its values are in range. | |
Static Public Member Functions | |
static ColorReal | hex2real (String s) |
Converts a 2 character hex string s (00-ff) into a ColorReal (0.0-1.0). | |
static const String | real2hex (ColorReal c) |
Converts a ColorReal c (0.0-1.0) into a 2 character hex string (00-ff). | |
static Color | YUV (const float &y, const float &u, const float &v, const value_type &a=1) |
YUV Color constructor. | |
static Color | YUV (const float &y, const float &s, const Angle &theta, const value_type &a=1) |
YUV color constructor where the chroma is in the saturation/hue form. | |
static Color | blend (Color a, Color b, float amount, BlendMethod type=BLEND_COMPOSITE) |
static bool | is_onto (BlendMethod x) |
static Color | alpha () |
Preset Color Constructors. | |
static Color | black () |
Preset Color Constructors. | |
static Color | white () |
Preset Color Constructors. | |
static Color | gray () |
Preset Color Constructors. | |
static Color | magenta () |
Preset Color Constructors. | |
static Color | red () |
Preset Color Constructors. | |
static Color | green () |
Preset Color Constructors. | |
static Color | blue () |
Preset Color Constructors. | |
static Color | cyan () |
Preset Color Constructors. | |
static Color | yellow () |
Preset Color Constructors. |
typedef ColorReal synfig::Color::value_type |
BLEND_COMPOSITE | Color A is composited onto B (Taking A's alpha into account). |
BLEND_STRAIGHT | Straight linear interpolation from A->B (Alpha ignored). |
BLEND_ONTO | Similar to BLEND_COMPOSITE, except that B's alpha is maintained. |
BLEND_STRAIGHT_ONTO |
<deprecated>
|
BLEND_BEHIND | Similar to BLEND_COMPOSITE, except that B is composited onto A. |
BLEND_SCREEN |
|
BLEND_OVERLAY |
|
BLEND_HARD_LIGHT |
|
BLEND_MULTIPLY | Simple A*B. |
BLEND_DIVIDE | Simple B/A. |
BLEND_ADD | Simple A+B. |
BLEND_SUBTRACT | Simple A-B. |
BLEND_DIFFERENCE | Simple |A-B|. |
BLEND_BRIGHTEN | If composite is brighter than B, use composite. B otherwise. |
BLEND_DARKEN | If composite is darker than B, use composite. B otherwise. |
BLEND_COLOR | Preserves the U and V channels of color A. |
BLEND_HUE | Preserves the angle of the UV vector of color A. |
BLEND_SATURATION | Preserves the magnitude of the UV Vector of color A. |
BLEND_LUMINANCE | Preserves the Y channel of color A. |
BLEND_ALPHA_BRIGHTEN | <deprecated> If A is less opaque than B, use A |
BLEND_ALPHA_DARKEN | <deprecated> If A is more opaque than B, use B |
BLEND_ALPHA_OVER | <deprecated> multiply alphas and then straight blends using the amount |
BLEND_END |
For internal use only.
|
synfig::Color::Color | ( | ) | [inline] |
synfig::Color::Color | ( | const value_type & | f | ) | [inline] |
synfig::Color::Color | ( | int | f | ) | [inline] |
synfig::Color::Color | ( | const value_type & | R, | |
const value_type & | G, | |||
const value_type & | B, | |||
const value_type & | A = 1 | |||
) | [inline] |
R | Red | |
G | Green | |
B | Blue | |
A | Opacity(alpha) |
synfig::Color::Color | ( | const Color & | c, | |
const value_type & | A | |||
) | [inline] |
c | Source for color components | |
A | Opacity(alpha) |
synfig::Color::Color | ( | const Color & | c | ) | [inline] |
Copy constructor.
const String Color::get_string | ( | void | ) | const |
Color& synfig::Color::operator *= | ( | const float & | rhs | ) | [inline] |
Color& synfig::Color::operator/= | ( | const float & | rhs | ) | [inline] |
Color synfig::Color::operator * | ( | const float & | rhs | ) | const [inline] |
Color synfig::Color::operator/ | ( | const float & | rhs | ) | const [inline] |
bool synfig::Color::operator== | ( | const Color & | rhs | ) | const [inline] |
bool synfig::Color::operator!= | ( | const Color & | rhs | ) | const [inline] |
Color synfig::Color::operator- | ( | ) | const [inline] |
Color synfig::Color::operator~ | ( | ) | const [inline] |
Effectively 1.0-color.
bool synfig::Color::is_valid | ( | ) | const [inline] |
Color synfig::Color::premult_alpha | ( | ) | const [inline] |
Color synfig::Color::demult_alpha | ( | ) | const [inline] |
const value_type& synfig::Color::get_r | ( | ) | const [inline] |
Copy constructor.
Returns the RED component
const value_type& synfig::Color::get_g | ( | ) | const [inline] |
Returns the GREEN component.
const value_type& synfig::Color::get_b | ( | ) | const [inline] |
Returns the BLUE component.
const value_type& synfig::Color::get_a | ( | ) | const [inline] |
Returns the amount of opacity (alpha).
const value_type& synfig::Color::get_alpha | ( | ) | const [inline] |
Converts a 2 character hex string s (00-ff) into a ColorReal (0.0-1.0).
Converts a ColorReal c (0.0-1.0) into a 2 character hex string (00-ff).
const String synfig::Color::get_hex | ( | ) | const [inline] |
Returns the color as a 6 character hex sting.
void Color::set_hex | ( | String & | hex | ) |
Sets the color's R, G, and B from a 3 or 6 character hex string.
Color& synfig::Color::set_r | ( | const value_type & | x | ) | [inline] |
Sets the RED component to x.
Color& synfig::Color::set_g | ( | const value_type & | x | ) | [inline] |
Sets the GREEN component to x.
Color& synfig::Color::set_b | ( | const value_type & | x | ) | [inline] |
Sets the BLUE component to x.
Color& synfig::Color::set_a | ( | const value_type & | x | ) | [inline] |
Sets the opacity (alpha) to x.
Color& synfig::Color::set_alpha | ( | const value_type & | x | ) | [inline] |
float synfig::Color::get_y | ( | ) | const [inline] |
Returns color's luminance.
float synfig::Color::get_u | ( | ) | const [inline] |
Returns U component of chromanance.
float synfig::Color::get_v | ( | ) | const [inline] |
Returns V component of chromanance.
float synfig::Color::get_s | ( | ) | const [inline] |
Returns the color's saturation.
This is is the magnitude of the U and V components.
Color& synfig::Color::set_yuv | ( | const float & | y, | |
const float & | u, | |||
const float & | v | |||
) | [inline] |
Sets the luminance (y) and chromanance (u and v).
Color& synfig::Color::set_y | ( | const float & | y | ) | [inline] |
Sets color luminance.
Color& synfig::Color::set_u | ( | const float & | u | ) | [inline] |
Set U component of chromanance.
Color& synfig::Color::set_v | ( | const float & | v | ) | [inline] |
Set V component of chromanance.
Color& synfig::Color::set_uv | ( | const float & | u, | |
const float & | v | |||
) | [inline] |
Set the U and V components of chromanance.
Color& synfig::Color::set_s | ( | const float & | x | ) | [inline] |
static Color synfig::Color::YUV | ( | const float & | y, | |
const float & | u, | |||
const float & | v, | |||
const value_type & | a = 1 | |||
) | [inline, static] |
YUV Color constructor.
Angle synfig::Color::get_hue | ( | ) | const [inline] |
Rotates the chromanance vector by amount specified by theta.
Sets the luminance (y) and chromanance (s and theta).
y | Luminance | |
s | Saturation | |
theta | Hue |
static Color synfig::Color::YUV | ( | const float & | y, | |
const float & | s, | |||
const Angle & | theta, | |||
const value_type & | a = 1 | |||
) | [inline, static] |
YUV color constructor where the chroma is in the saturation/hue form.
y | Luminance | |
s | Saturation | |
theta | Hue | |
a | Opacity (alpha) |
Color Color::clamped | ( | ) | const |
Clamps a color so that its values are in range. Ignores attempting to visualize negative colors.
Color Color::clamped_negative | ( | ) | const |
Clamps a color so that its values are in range.
Color Color::blend | ( | Color | a, | |
Color | b, | |||
float | amount, | |||
Color::BlendMethod | type = BLEND_COMPOSITE | |||
) | [static] |
static bool synfig::Color::is_onto | ( | BlendMethod | x | ) | [inline, static] |