00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef PAPYRUSHSBA_H
00020 #define PAPYRUSHSBA_H
00021
00022 #include <cairomm/pattern.h>
00023
00024 namespace Papyrus {
00025
00026 class RGBA;
00027
00032 struct HSBA {
00033 HSBA(double h=0.0, double s=0.0, double b=0.0, double a=1.0);
00034
00035 HSBA(const RGBA& rgb);
00036
00037 double hue, saturation, brightness, alpha;
00038
00039 double operator[](unsigned index);
00040
00041 HSBA& operator=(const RGBA& rgb);
00042
00043 operator RGBA();
00044
00045 operator Cairo::RefPtr<Cairo::Pattern>();
00046
00047 };
00048
00049 void rgb_to_hsb(double rgb_r, double rgb_g, double rgb_b,
00050 double& hsb_h, double& hsb_s, double& hsb_b);
00051
00052 void hsb_to_rgb(double hsb_h, double hsb_s, double hsb_b,
00053 double& rgb_r, double& rgb_g, double& rgb_b);
00054
00055
00056 }
00057
00058 #endif