Skip to content

Commit df02023

Browse files
committed
Split Color in Color4f and Color3f
1 parent d7797d5 commit df02023

File tree

8 files changed

+1208
-688
lines changed

8 files changed

+1208
-688
lines changed

src/main/scala/vecmatlib/color/Color.scala

Lines changed: 0 additions & 603 deletions
This file was deleted.
Lines changed: 380 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,380 @@
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

Comments
 (0)