gKit3
Loading...
Searching...
No Matches
color.cpp
1
2#include <cmath>
3#include <algorithm>
4
5#include "color.h"
6
7
8float Color::power( ) const
9{
10 return (r+g+b) / 3;
11}
12
13float Color::max( ) const
14{
15 return std::max(r, std::max(g, std::max(b, float(0))));
16}
17
19{
20 return Color(0, 0, 0);
21}
22
24{
25 return Color(1, 1, 1);
26}
27
29{
30 return Color(1, 0, 0);
31}
32
34{
35 return Color(0, 1, 0);
36}
37
39{
40 return Color(0, 0, 1);
41}
42
44{
45 return Color(1, 1, 0);
46}
47
48
49float srgb( const float x )
50{
51 if(x < 0.00031308f) return 12.92f * x;
52 else return std::pow(1.055f * x, 1.0f / 2.4f) - 0.055f;
53}
54
55float linear( const float x )
56{
57 if(x < 0.04045f) return x / 12.92f;
58 else return std::pow((x + 0.055f) / 1.055f, 2.4f);
59}
60
61Color srgb( const Color& color, const float g )
62{
63 return Color(srgb(color.r), srgb(color.g), srgb(color.b), color.a);
64
65}
66
67Color linear( const Color& color, const float g )
68{
69 return Color(linear(color.r), linear(color.g), linear(color.b), color.a);
70}
71
72
73Color operator+ ( const Color& a, const Color& b )
74{
75 return Color(a.r + b.r, a.g + b.g, a.b + b.b, a.a + b.a);
76}
77
78Color operator- ( const Color& c )
79{
80 return Color(-c.r, -c.g, -c.b, -c.a);
81}
82
83Color operator- ( const Color& a, const Color& b )
84{
85 return a + (-b);
86}
87
88Color operator* ( const Color& a, const Color& b )
89{
90 return Color(a.r * b.r, a.g * b.g, a.b * b.b, a.a * b.a);
91}
92
93Color operator* ( const float k, const Color& c )
94{
95 return Color(c.r * k, c.g * k, c.b * k, c.a * k);
96}
97
98Color operator* ( const Color& c, const float k )
99{
100 return k * c;
101}
102
103Color operator/ ( const Color& a, const Color& b )
104{
105 return Color(a.r / b.r, a.g / b.g, a.b / b.b, a.a / b.a);
106}
107
108Color operator/ ( const float k, const Color& c )
109{
110 return Color(k / c.r, k / c.g, k / c.b, k / c.a);
111}
112
113Color operator/ ( const Color& c, const float k )
114{
115 float kk= 1 / k;
116 return kk * c;
117}
118
119Color operator+ ( const float k, const Color& c )
120{
121 return Color(k + c.r, k + c.g, k + c.b, k + c.a);
122}
123
124Color operator+ ( const Color& c, const float k )
125{
126 return k + c;
127}
128
129Color abs( const Color& color )
130{
131 return Color( std::abs(color.r), std::abs(color.g), std::abs(color.b), std::abs(color.a) );
132}
Color Red()
utilitaire. renvoie une couleur rouge.
Definition color.cpp:28
Color Yellow()
utilitaire. renvoie une couleur jaune.
Definition color.cpp:43
Color Blue()
utilitaire. renvoie une couleur bleue.
Definition color.cpp:38
Color Black()
utilitaire. renvoie une couleur noire.
Definition color.cpp:18
Color Green()
utilitaire. renvoie une couleur verte.
Definition color.cpp:33
Color White()
utilitaire. renvoie une couleur blanche.
Definition color.cpp:23
representation d'une couleur (rgba) transparente ou opaque.
Definition color.h:14