1+ package vecmatlib .color
2+
3+ import vecmatlib .Float3
4+
5+ case class Color3f (r : Float , g : Float , b : Float ) extends Float3 {
6+
7+ def + (r : Float , g : Float , b : Float ): Color3f = Color3f (this .r + r, this .g + g, this .b + b)
8+
9+ def + (r : Float , g : Float , b : Float , a : Float ): Color4f = Color4f (this .r + r, this .g + g, this .b + b, a)
10+
11+ def + (c : Color3f ): Color3f = this + (c.r, c.g, c.b)
12+
13+ def + (c : Color4f ): Color4f = this + (c.r, c.g, c.b, c.a)
14+
15+ def add (r : Float , g : Float , b : Float ): Color3f = this + (r, g, b)
16+
17+ def add (r : Float , g : Float , b : Float , a : Float ): Color4f = this + (r, g, b, a)
18+
19+ def add (c : Color3f ): Color3f = this + c
20+
21+ def add (c : Color4f ): Color4f = this + c
22+
23+ def - (r : Float , g : Float , b : Float ): Color3f = Color3f (this .r - r, this .g - g, this .b - b)
24+
25+ def - (r : Float , g : Float , b : Float , a : Float ): Color4f = Color4f (this .r - r, this .g - g, this .b - b, 1.0f - a)
26+
27+ def - (c : Color3f ): Color3f = this - (c.r, c.g, c.b)
28+
29+ def - (c : Color4f ): Color4f = this - (c.r, c.g, c.b, c.a)
30+
31+ def subtract (r : Float , g : Float , b : Float ): Color3f = this - (r, g, b)
32+
33+ def subtract (r : Float , g : Float , b : Float , a : Float ): Color4f = this - (r, g, b, a)
34+
35+ def subtract (c : Color3f ): Color3f = this - c
36+
37+ def subtract (c : Color4f ): Color4f = this - c
38+
39+ def * (r : Float , g : Float , b : Float ): Color3f = Color3f (this .r * r, this .g * g, this .b * b)
40+
41+ def * (r : Float , g : Float , b : Float , a : Float ): Color4f = Color4f (this .r * r, this .g * g, this .b * b, a)
42+
43+ def * (c : Color3f ): Color3f = this * (c.r, c.g, c.b)
44+
45+ def * (c : Color4f ): Color4f = this * (c.r, c.g, c.b, c.a)
46+
47+ def blend (r : Float , g : Float , b : Float ): Color3f = this * (r, g, b)
48+
49+ def blend (r : Float , g : Float , b : Float , a : Float ): Color4f = this * (r, g, b, a)
50+
51+ def blend (c : Color3f ): Color3f = this * c
52+
53+ def blend (c : Color4f ): Color4f = this * c
54+
55+ def * (k : Float ): Color3f = this * (k, k, k)
56+
57+ def multiply (k : Float ): Color3f = this * k
58+
59+ def invert : Color3f = Color3f (1.0f - this .r, 1.0f - this .g, 1.0f - this .b)
60+
61+ def darker (k : Float ): Color3f = Color3f (this .r * (1.0f - k), this .g * (1.0f - k), this .b * (1.0f - k))
62+
63+ def lighter (k : Float ): Color3f = Color3f (this .r + (1.0f - this .r) * k, this .g + (1.0f - this .g) * k, this .b + (1.0f - this .b) * k)
64+
65+ def lerp (to : Color3f , weight : Float ): Color3f = (this * (1.0f - weight)) + (to * weight)
66+
67+ /**
68+ * X component.
69+ *
70+ * @return The X component of this tuple
71+ */
72+ override def x : Float = this .r
73+
74+ /**
75+ * Y component.
76+ *
77+ * @return The Y component of this tuple
78+ */
79+ override def y : Float = this .g
80+
81+ /**
82+ * Z component.
83+ *
84+ * @return The Z component of this tuple
85+ */
86+ override def z : Float = this .b
87+ }
88+
89+ object Color3f {
90+
91+ lazy val AliceBlue : Color3f = Color3f (0.941176f , 0.972549f , 1.0f )
92+
93+ lazy val AntiqueWhite : Color3f = Color3f (0.980392f , 0.921569f , 0.843137f )
94+
95+ lazy val Aqua : Color3f = Color3f (0.0f , 1.0f , 1.0f )
96+
97+ lazy val Aquamarine : Color3f = Color3f (0.498039f , 1.0f , 0.831373f )
98+
99+ lazy val Azure : Color3f = Color3f (0.941176f , 1.0f , 1.0f )
100+
101+ lazy val Beige : Color3f = Color3f (0.960784f , 0.960784f , 0.862745f )
102+
103+ lazy val Bisque : Color3f = Color3f (1.0f , 0.894118f , 0.768627f )
104+
105+ lazy val Black : Color3f = Color3f (0.0f , 0.0f , 0.0f )
106+
107+ lazy val BlanchedAlmond : Color3f = Color3f (1.0f , 0.921569f , 0.803922f )
108+
109+ lazy val Blue : Color3f = Color3f (0.0f , 0.0f , 1.0f )
110+
111+ lazy val BlueViolet : Color3f = Color3f (0.541176f , 0.168627f , 0.886275f )
112+
113+ lazy val Brown : Color3f = Color3f (0.647059f , 0.164706f , 0.164706f )
114+
115+ lazy val BurlyWood : Color3f = Color3f (0.870588f , 0.721569f , 0.529412f )
116+
117+ lazy val CadetBlue : Color3f = Color3f (0.372549f , 0.619608f , 0.627451f )
118+
119+ lazy val Chartreuse : Color3f = Color3f (0.498039f , 1.0f , 0.0f )
120+
121+ lazy val Chocolate : Color3f = Color3f (0.823529f , 0.411765f , 0.117647f )
122+
123+ lazy val Coral : Color3f = Color3f (1.0f , 0.498039f , 0.313726f )
124+
125+ lazy val Cornflower : Color3f = Color3f (0.392157f , 0.584314f , 0.929412f )
126+
127+ lazy val Cornsilk : Color3f = Color3f (1.0f , 0.972549f , 0.862745f )
128+
129+ lazy val Crimson : Color3f = Color3f (0.862745f , 0.0784314f , 0.235294f )
130+
131+ lazy val Cyan : Color3f = Color3f (0.0f , 1.0f , 1.0f )
132+
133+ lazy val DarkBlue : Color3f = Color3f (0.0f , 0.0f , 0.545098f )
134+
135+ lazy val DarkCyan : Color3f = Color3f (0.0f , 0.545098f , 0.545098f )
136+
137+ lazy val DarkGoldenRod : Color3f = Color3f (0.721569f , 0.52549f , 0.0431373f )
138+
139+ lazy val DarkGray : Color3f = Color3f (0.662745f , 0.662745f , 0.662745f )
140+
141+ lazy val DarkGreen : Color3f = Color3f (0.0f , 0.392157f , 0.0f )
142+
143+ lazy val DarkKhaki : Color3f = Color3f (0.741176f , 0.717647f , 0.419608f )
144+
145+ lazy val DarkMagenta : Color3f = Color3f (0.545098f , 0.0f , 0.545098f )
146+
147+ lazy val DarkOliveGreen : Color3f = Color3f (0.333333f , 0.419608f , 0.184314f )
148+
149+ lazy val DarkOrange : Color3f = Color3f (1.0f , 0.54902f , 0.0f )
150+
151+ lazy val DarkOrchid : Color3f = Color3f (0.6f , 0.196078f , 0.8f )
152+
153+ lazy val DarkRed : Color3f = Color3f (0.545098f , 0.0f , 0.0f )
154+
155+ lazy val DarkSalmon : Color3f = Color3f (0.913725f , 0.588235f , 0.478431f )
156+
157+ lazy val DarkSeaGreen : Color3f = Color3f (0.560784f , 0.737255f , 0.560784f )
158+
159+ lazy val DarkSlateBlue : Color3f = Color3f (0.282353f , 0.239216f , 0.545098f )
160+
161+ lazy val DarkSlateGray : Color3f = Color3f (0.184314f , 0.309804f , 0.309804f )
162+
163+ lazy val DarkTurquoise : Color3f = Color3f (0.0f , 0.807843f , 0.819608f )
164+
165+ lazy val DarkViolet : Color3f = Color3f (0.580392f , 0.0f , 0.827451f )
166+
167+ lazy val DeepPink : Color3f = Color3f (1.0f , 0.0784314f , 0.576471f )
168+
169+ lazy val DeepSkyBlue : Color3f = Color3f (0.0f , 0.74902f , 1.0f )
170+
171+ lazy val DimGray : Color3f = Color3f (0.411765f , 0.411765f , 0.411765f )
172+
173+ lazy val DodgerBlue : Color3f = Color3f (0.117647f , 0.564706f , 1.0f )
174+
175+ lazy val DireBrick : Color3f = Color3f (0.698039f , 0.133333f , 0.133333f )
176+
177+ lazy val FloralWhite : Color3f = Color3f (1.0f , 0.980392f , 0.941176f )
178+
179+ lazy val ForestGreen : Color3f = Color3f (0.133333f , 0.545098f , 0.133333f )
180+
181+ lazy val Fuchsia : Color3f = Color3f (1.0f , 0.0f , 1.0f )
182+
183+ lazy val Gainsboro : Color3f = Color3f (0.862745f , 0.862745f , 0.862745f )
184+
185+ lazy val GhostWhite : Color3f = Color3f (0.972549f , 0.972549f , 1.0f )
186+
187+ lazy val Gold : Color3f = Color3f (1.0f , 0.843137f , 0.0f )
188+
189+ lazy val GoldenRod : Color3f = Color3f (0.854902f , 0.647059f , 0.12549f )
190+
191+ lazy val Gray : Color3f = Color3f (0.745098f , 0.745098f , 0.745098f )
192+
193+ lazy val Green : Color3f = Color3f (0.0f , 1.0f , 0.0f )
194+
195+ lazy val GreenYellow : Color3f = Color3f (0.678431f , 1.0f , 0.184314f )
196+
197+ lazy val HoneyDew : Color3f = Color3f (0.941176f , 1.0f , 0.941176f )
198+
199+ lazy val HotPink : Color3f = Color3f (1.0f , 0.411765f , 0.705882f )
200+
201+ lazy val IndianRed : Color3f = Color3f (0.803922f , 0.360784f , 0.360784f )
202+
203+ lazy val Indigo : Color3f = Color3f (0.294118f , 0.0f , 0.509804f )
204+
205+ lazy val Ivory : Color3f = Color3f (1.0f , 1.0f , 0.941176f )
206+
207+ lazy val Khaki : Color3f = Color3f (0.941176f , 0.901961f , 0.54902f )
208+
209+ lazy val Lavender : Color3f = Color3f (0.901961f , 0.901961f , 0.980392f )
210+
211+ lazy val LavenderBlush : Color3f = Color3f (1.0f , 0.941176f , 0.960784f )
212+
213+ lazy val LawnGreen : Color3f = Color3f (0.486275f , 0.988235f , 0.0f )
214+
215+ lazy val LemonChiffon : Color3f = Color3f (1.0f , 0.980392f , 0.803922f )
216+
217+ lazy val LightBlue : Color3f = Color3f (0.678431f , 0.847059f , 0.901961f )
218+
219+ lazy val LightCoral : Color3f = Color3f (0.941176f , 0.501961f , 0.501961f )
220+
221+ lazy val LightCyan : Color3f = Color3f (0.878431f , 1.0f , 1.0f )
222+
223+ lazy val LightGoldenRod : Color3f = Color3f (0.980392f , 0.980392f , 0.823529f )
224+
225+ lazy val LightGray : Color3f = Color3f (0.827451f , 0.827451f , 0.827451f )
226+
227+ lazy val LightGreen : Color3f = Color3f (0.564706f , 0.933333f , 0.564706f )
228+
229+ lazy val LightPink : Color3f = Color3f (1.0f , 0.713726f , 0.756863f )
230+
231+ lazy val LightSalmon : Color3f = Color3f (1.0f , 0.627451f , 0.478431f )
232+
233+ lazy val LightSeaGreen : Color3f = Color3f (0.12549f , 0.698039f , 0.666667f )
234+
235+ lazy val LightSkyBlue : Color3f = Color3f (0.529412f , 0.807843f , 0.980392f )
236+
237+ lazy val LightSlateGray : Color3f = Color3f (0.466667f , 0.533333f , 0.6f )
238+
239+ lazy val LightSteelBlue : Color3f = Color3f (0.690196f , 0.768627f , 0.870588f )
240+
241+ lazy val LightYellow : Color3f = Color3f (1.0f , 1.0f , 0.878431f )
242+
243+ lazy val Lime : Color3f = Color3f (0.0f , 1.0f , 0.0f )
244+
245+ lazy val LimeGreen : Color3f = Color3f (0.196078f , 0.803922f , 0.196078f )
246+
247+ lazy val Linen : Color3f = Color3f (0.980392f , 0.941176f , 0.901961f )
248+
249+ lazy val Magenta : Color3f = Color3f (1.0f , 0.0f , 1.0f )
250+
251+ lazy val Maroon : Color3f = Color3f (0.690196f , 0.188235f , 0.376471f )
252+
253+ lazy val MediumAquamarine : Color3f = Color3f (0.4f , 0.803922f , 0.666667f )
254+
255+ lazy val MediumBlue : Color3f = Color3f (0.0f , 0.0f , 0.803922f )
256+
257+ lazy val MediumOrchid : Color3f = Color3f (0.729412f , 0.333333f , 0.827451f )
258+
259+ lazy val MediumPurple : Color3f = Color3f (0.576471f , 0.439216f , 0.858824f )
260+
261+ lazy val MediumSeaGreen : Color3f = Color3f (0.235294f , 0.701961f , 0.443137f )
262+
263+ lazy val MediumSlateBlue : Color3f = Color3f (0.482353f , 0.407843f , 0.933333f )
264+
265+ lazy val MediumSpringGreen : Color3f = Color3f (0.0f , 0.980392f , 0.603922f )
266+
267+ lazy val MediumTurquoise : Color3f = Color3f (0.282353f , 0.819608f , 0.8f )
268+
269+ lazy val MediumVioletRed : Color3f = Color3f (0.780392f , 0.0823529f , 0.521569f )
270+
271+ lazy val MidnightBlue : Color3f = Color3f (0.0980392f , 0.0980392f , 0.439216f )
272+
273+ lazy val MintCream : Color3f = Color3f (0.960784f , 1.0f , 0.980392f )
274+
275+ lazy val MistyRose : Color3f = Color3f (1.0f , 0.894118f , 0.882353f )
276+
277+ lazy val Moccasin : Color3f = Color3f (1.0f , 0.894118f , 0.709804f )
278+
279+ lazy val NavajoWhite : Color3f = Color3f (1.0f , 0.870588f , 0.678431f )
280+
281+ lazy val NavyBlue : Color3f = Color3f (0.0f , 0.0f , 0.501961f )
282+
283+ lazy val OldLace : Color3f = Color3f (0.992157f , 0.960784f , 0.901961f )
284+
285+ lazy val Olive : Color3f = Color3f (0.501961f , 0.501961f , 0.0f )
286+
287+ lazy val OliveDrab : Color3f = Color3f (0.419608f , 0.556863f , 0.137255f )
288+
289+ lazy val Orange : Color3f = Color3f (1.0f , 0.647059f , 0.0f )
290+
291+ lazy val OrangeRed : Color3f = Color3f (1.0f , 0.270588f , 0.0f )
292+
293+ lazy val Orchid : Color3f = Color3f (0.854902f , 0.439216f , 0.839216f )
294+
295+ lazy val PaleGoldenRod : Color3f = Color3f (0.933333f , 0.909804f , 0.666667f )
296+
297+ lazy val PaleGreen : Color3f = Color3f (0.596078f , 0.984314f , 0.596078f )
298+
299+ lazy val PaleTurquoise : Color3f = Color3f (0.686275f , 0.933333f , 0.933333f )
300+
301+ lazy val PaleVioletRed : Color3f = Color3f (0.858824f , 0.439216f , 0.576471f )
302+
303+ lazy val PapayaWhip : Color3f = Color3f (1.0f , 0.937255f , 0.835294f )
304+
305+ lazy val PeachPuff : Color3f = Color3f (1.0f , 0.854902f , 0.72549f )
306+
307+ lazy val Peru : Color3f = Color3f (0.803922f , 0.521569f , 0.247059f )
308+
309+ lazy val Pink : Color3f = Color3f (1.0f , 0.752941f , 0.796078f )
310+
311+ lazy val Plum : Color3f = Color3f (0.866667f , 0.627451f , 0.866667f )
312+
313+ lazy val PowderBlue : Color3f = Color3f (0.690196f , 0.878431f , 0.901961f )
314+
315+ lazy val Purple : Color3f = Color3f (0.627451f , 0.12549f , 0.941176f )
316+
317+ lazy val RebeccaPurple : Color3f = Color3f (0.4f , 0.2f , 0.6f )
318+
319+ lazy val Red : Color3f = Color3f (1.0f , 0.0f , 0.0f )
320+
321+ lazy val RosyBrown : Color3f = Color3f (0.737255f , 0.560784f , 0.560784f )
322+
323+ lazy val RoyalBlue : Color3f = Color3f (0.254902f , 0.411765f , 0.882353f )
324+
325+ lazy val SaddleBrown : Color3f = Color3f (0.545098f , 0.270588f , 0.0745098f )
326+
327+ lazy val Salmon : Color3f = Color3f (0.980392f , 0.501961f , 0.447059f )
328+
329+ lazy val SandyBrown : Color3f = Color3f (0.956863f , 0.643137f , 0.376471f )
330+
331+ lazy val SeaGreen : Color3f = Color3f (0.180392f , 0.545098f , 0.341176f )
332+
333+ lazy val Seashell : Color3f = Color3f (1.0f , 0.960784f , 0.933333f )
334+
335+ lazy val Sienna : Color3f = Color3f (0.627451f , 0.321569f , 0.176471f )
336+
337+ lazy val Silver : Color3f = Color3f (0.752941f , 0.752941f , 0.752941f )
338+
339+ lazy val SkyBlue : Color3f = Color3f (0.529412f , 0.807843f , 0.921569f )
340+
341+ lazy val SlateBlue : Color3f = Color3f (0.415686f , 0.352941f , 0.803922f )
342+
343+ lazy val SlateGray : Color3f = Color3f (0.439216f , 0.501961f , 0.564706f )
344+
345+ lazy val Snow : Color3f = Color3f (1.0f , 0.980392f , 0.980392f )
346+
347+ lazy val SpringGreen : Color3f = Color3f (0.0f , 1.0f , 0.498039f )
348+
349+ lazy val SteelBlue : Color3f = Color3f (0.27451f , 0.509804f , 0.705882f )
350+
351+ lazy val Tan : Color3f = Color3f (0.823529f , 0.705882f , 0.54902f )
352+
353+ lazy val Teal : Color3f = Color3f (0.0f , 0.501961f , 0.501961f )
354+
355+ lazy val Thistle : Color3f = Color3f (0.847059f , 0.74902f , 0.847059f )
356+
357+ lazy val Tomato : Color3f = Color3f (1.0f , 0.388235f , 0.278431f )
358+
359+ lazy val Turquoise : Color3f = Color3f (0.25098f , 0.878431f , 0.815686f )
360+
361+ lazy val Violet : Color3f = Color3f (0.933333f , 0.509804f , 0.933333f )
362+
363+ lazy val WebGray : Color3f = Color3f (0.501961f , 0.501961f , 0.501961f )
364+
365+ lazy val WebGreen : Color3f = Color3f (0.0f , 0.501961f , 0.0f )
366+
367+ lazy val WebMaroon : Color3f = Color3f (0.501961f , 0.0f , 0.0f )
368+
369+ lazy val WebPurple : Color3f = Color3f (0.501961f , 0.0f , 0.501961f )
370+
371+ lazy val Wheat : Color3f = Color3f (0.960784f , 0.870588f , 0.701961f )
372+
373+ lazy val White : Color3f = Color3f (1.0f , 1.0f , 1.0f )
374+
375+ lazy val WhiteSmoke : Color3f = Color3f (0.960784f , 0.960784f , 0.960784f )
376+
377+ lazy val Yellow : Color3f = Color3f (1.0f , 1.0f , 0.0f )
378+
379+ lazy val YellowGreen : Color3f = Color3f (0.603922f , 0.803922f , 0.196078f )
380+ }
0 commit comments