1
- use crate :: { Alpha , Hsla , Lcha , LinearRgba , Oklaba , Srgba , StandardColor , Xyza } ;
1
+ use crate :: { Alpha , Hsla , Hsva , Hwba , Lcha , LinearRgba , Oklaba , Srgba , StandardColor , Xyza } ;
2
2
use bevy_reflect:: { Reflect , ReflectDeserialize , ReflectSerialize } ;
3
3
use serde:: { Deserialize , Serialize } ;
4
4
@@ -15,6 +15,10 @@ pub enum Color {
15
15
LinearRgba ( LinearRgba ) ,
16
16
/// A color in the HSL color space with alpha.
17
17
Hsla ( Hsla ) ,
18
+ /// A color in the HSV color space with alpha.
19
+ Hsva ( Hsva ) ,
20
+ /// A color in the HWB color space with alpha.
21
+ Hwba ( Hwba ) ,
18
22
/// A color in the LCH color space with alpha.
19
23
Lcha ( Lcha ) ,
20
24
/// A color in the Oklaba color space with alpha.
@@ -46,6 +50,8 @@ impl Alpha for Color {
46
50
Color :: Srgba ( x) => * x = x. with_alpha ( alpha) ,
47
51
Color :: LinearRgba ( x) => * x = x. with_alpha ( alpha) ,
48
52
Color :: Hsla ( x) => * x = x. with_alpha ( alpha) ,
53
+ Color :: Hsva ( x) => * x = x. with_alpha ( alpha) ,
54
+ Color :: Hwba ( x) => * x = x. with_alpha ( alpha) ,
49
55
Color :: Lcha ( x) => * x = x. with_alpha ( alpha) ,
50
56
Color :: Oklaba ( x) => * x = x. with_alpha ( alpha) ,
51
57
Color :: Xyza ( x) => * x = x. with_alpha ( alpha) ,
@@ -59,6 +65,8 @@ impl Alpha for Color {
59
65
Color :: Srgba ( x) => x. alpha ( ) ,
60
66
Color :: LinearRgba ( x) => x. alpha ( ) ,
61
67
Color :: Hsla ( x) => x. alpha ( ) ,
68
+ Color :: Hsva ( x) => x. alpha ( ) ,
69
+ Color :: Hwba ( x) => x. alpha ( ) ,
62
70
Color :: Lcha ( x) => x. alpha ( ) ,
63
71
Color :: Oklaba ( x) => x. alpha ( ) ,
64
72
Color :: Xyza ( x) => x. alpha ( ) ,
@@ -84,6 +92,18 @@ impl From<Hsla> for Color {
84
92
}
85
93
}
86
94
95
+ impl From < Hsva > for Color {
96
+ fn from ( value : Hsva ) -> Self {
97
+ Self :: Hsva ( value)
98
+ }
99
+ }
100
+
101
+ impl From < Hwba > for Color {
102
+ fn from ( value : Hwba ) -> Self {
103
+ Self :: Hwba ( value)
104
+ }
105
+ }
106
+
87
107
impl From < Oklaba > for Color {
88
108
fn from ( value : Oklaba ) -> Self {
89
109
Self :: Oklaba ( value)
@@ -108,6 +128,8 @@ impl From<Color> for Srgba {
108
128
Color :: Srgba ( srgba) => srgba,
109
129
Color :: LinearRgba ( linear) => linear. into ( ) ,
110
130
Color :: Hsla ( hsla) => hsla. into ( ) ,
131
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
132
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
111
133
Color :: Lcha ( lcha) => lcha. into ( ) ,
112
134
Color :: Oklaba ( oklab) => oklab. into ( ) ,
113
135
Color :: Xyza ( xyza) => xyza. into ( ) ,
@@ -121,6 +143,8 @@ impl From<Color> for LinearRgba {
121
143
Color :: Srgba ( srgba) => srgba. into ( ) ,
122
144
Color :: LinearRgba ( linear) => linear,
123
145
Color :: Hsla ( hsla) => hsla. into ( ) ,
146
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
147
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
124
148
Color :: Lcha ( lcha) => lcha. into ( ) ,
125
149
Color :: Oklaba ( oklab) => oklab. into ( ) ,
126
150
Color :: Xyza ( xyza) => xyza. into ( ) ,
@@ -134,6 +158,38 @@ impl From<Color> for Hsla {
134
158
Color :: Srgba ( srgba) => srgba. into ( ) ,
135
159
Color :: LinearRgba ( linear) => linear. into ( ) ,
136
160
Color :: Hsla ( hsla) => hsla,
161
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
162
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
163
+ Color :: Lcha ( lcha) => lcha. into ( ) ,
164
+ Color :: Oklaba ( oklab) => oklab. into ( ) ,
165
+ Color :: Xyza ( xyza) => xyza. into ( ) ,
166
+ }
167
+ }
168
+ }
169
+
170
+ impl From < Color > for Hsva {
171
+ fn from ( value : Color ) -> Self {
172
+ match value {
173
+ Color :: Srgba ( srgba) => srgba. into ( ) ,
174
+ Color :: LinearRgba ( linear) => linear. into ( ) ,
175
+ Color :: Hsla ( hsla) => hsla. into ( ) ,
176
+ Color :: Hsva ( hsva) => hsva,
177
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
178
+ Color :: Lcha ( lcha) => lcha. into ( ) ,
179
+ Color :: Oklaba ( oklab) => oklab. into ( ) ,
180
+ Color :: Xyza ( xyza) => xyza. into ( ) ,
181
+ }
182
+ }
183
+ }
184
+
185
+ impl From < Color > for Hwba {
186
+ fn from ( value : Color ) -> Self {
187
+ match value {
188
+ Color :: Srgba ( srgba) => srgba. into ( ) ,
189
+ Color :: LinearRgba ( linear) => linear. into ( ) ,
190
+ Color :: Hsla ( hsla) => hsla. into ( ) ,
191
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
192
+ Color :: Hwba ( hwba) => hwba,
137
193
Color :: Lcha ( lcha) => lcha. into ( ) ,
138
194
Color :: Oklaba ( oklab) => oklab. into ( ) ,
139
195
Color :: Xyza ( xyza) => xyza. into ( ) ,
@@ -147,6 +203,8 @@ impl From<Color> for Lcha {
147
203
Color :: Srgba ( srgba) => srgba. into ( ) ,
148
204
Color :: LinearRgba ( linear) => linear. into ( ) ,
149
205
Color :: Hsla ( hsla) => hsla. into ( ) ,
206
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
207
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
150
208
Color :: Lcha ( lcha) => lcha,
151
209
Color :: Oklaba ( oklab) => oklab. into ( ) ,
152
210
Color :: Xyza ( xyza) => xyza. into ( ) ,
@@ -160,6 +218,8 @@ impl From<Color> for Oklaba {
160
218
Color :: Srgba ( srgba) => srgba. into ( ) ,
161
219
Color :: LinearRgba ( linear) => linear. into ( ) ,
162
220
Color :: Hsla ( hsla) => hsla. into ( ) ,
221
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
222
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
163
223
Color :: Lcha ( lcha) => lcha. into ( ) ,
164
224
Color :: Oklaba ( oklab) => oklab,
165
225
Color :: Xyza ( xyza) => xyza. into ( ) ,
@@ -173,6 +233,8 @@ impl From<Color> for Xyza {
173
233
Color :: Srgba ( x) => x. into ( ) ,
174
234
Color :: LinearRgba ( x) => x. into ( ) ,
175
235
Color :: Hsla ( x) => x. into ( ) ,
236
+ Color :: Hsva ( hsva) => hsva. into ( ) ,
237
+ Color :: Hwba ( hwba) => hwba. into ( ) ,
176
238
Color :: Lcha ( x) => x. into ( ) ,
177
239
Color :: Oklaba ( x) => x. into ( ) ,
178
240
Color :: Xyza ( xyza) => xyza,
0 commit comments