source: 2013/30/MiskaK/MW2(My Warfare 2)/Paranneltu Jypeli/Graphics/Color.cs @ 4507

Revision 4507, 28.2 KB checked in by anlakane, 6 years ago (diff)

Talletus.

Line 
1using System;
2
3using XnaColor = Microsoft.Xna.Framework.Color;
4using System.Globalization;
5using System.Text;
6
7namespace Jypeli
8{
9    /// <summary>
10    /// Väri.
11    /// </summary>
12    [Save]
13    public struct Color
14    {
15        /// <summary>
16        /// Punainen värikomponentti välillä 0-255
17        /// </summary>
18        [Save]
19        public byte RedComponent;
20
21        /// <summary>
22        /// Vihreä värikomponentti välillä 0-255
23        /// </summary>
24        [Save]
25        public byte GreenComponent;
26
27        /// <summary>
28        /// Sininen värikomponentti välillä 0-255
29        /// </summary>
30        [Save]
31        public byte BlueComponent;
32
33        /// <summary>
34        /// Läpinäkymättömyys välillä 0-255
35        /// </summary>
36        [Save]
37        public byte AlphaComponent;
38
39        internal Color( XnaColor c )
40        {
41            RedComponent = c.R;
42            GreenComponent = c.G;
43            BlueComponent = c.B;
44            AlphaComponent = c.A;
45        }
46
47        public XnaColor AsXnaColor()
48        {
49            return new XnaColor(
50                RedComponent, GreenComponent, BlueComponent, AlphaComponent );
51        }
52
53        public Color( byte red, byte green, byte blue )
54            : this( red, green, blue, byte.MaxValue )
55        {
56        }
57
58        public Color( byte red, byte green, byte blue, byte alpha )
59        {
60            RedComponent = red;
61            GreenComponent = green;
62            BlueComponent = blue;
63            AlphaComponent = alpha;
64        }
65
66        public Color( int red, int green, int blue, int alpha )
67            : this( (byte)red, (byte)green, (byte)blue, (byte)alpha )
68        {
69        }
70
71        public Color( int red, int green, int blue )
72            : this( (byte)red, (byte)green, (byte)blue, byte.MaxValue )
73        {
74        }
75
76        public Color( Color rgb, byte alpha )
77            : this( rgb.RedComponent, rgb.GreenComponent, rgb.BlueComponent, alpha )
78        {
79        }
80
81        public Color( double red, double green, double blue )
82            : this( red, green, blue, 1.0 )
83        {
84        }
85
86        public Color( double red, double green, double blue, double alpha )
87        {
88            var xnaColor = new XnaColor(
89                (float)red,
90                (float)green,
91                (float)blue,
92                (float)alpha );
93            RedComponent = xnaColor.R;
94            GreenComponent = xnaColor.G;
95            BlueComponent = xnaColor.B;
96            AlphaComponent = xnaColor.A;
97        }
98
99        /// <summary>
100        /// Pakkaa kolme kokonaislukua väriä vastaavaksi kokonaisluvuksi
101        /// </summary>
102        /// <param name="r">värin punainen osuus (0-255)</param>
103        /// <param name="g">värin vihreä osuus (0-255)</param>
104        /// <param name="b">värin sininen osuus (0-255)</param>
105        /// <param name="a">alpha-arvo (0-255)</param>
106        /// <returns></returns>
107        public static uint PackRGB( byte r, byte g, byte b, byte a = 255 )
108        {
109            return (uint)( ( a << 24 ) | ( r << 16 ) | ( g << 8 ) | b );
110        }
111
112
113        /// <summary>
114        /// Pakkaa kolme kokonaislukua väriä vastaavaksi kokonaisluvuksi
115        /// </summary>
116        /// <param name="r">värin punainen osuus (0-255)</param>
117        /// <param name="g">värin vihreä osuus (0-255)</param>
118        /// <param name="b">värin sininen osuus (0-255)</param>
119        /// <param name="a">alpha-arvo (0-255)</param>
120        /// <returns></returns>
121        public static uint PackRGB( int r, int g, int b, int a = 255 )
122        {
123            return (uint)( ( a << 24 ) | ( r << 16 ) | ( g << 8 ) | b );
124        }
125
126        /// <summary>
127        /// Palauttaa heksakoodia vastaavan värin.
128        /// </summary>
129        /// <param name="hexString">Heksakoodi</param>
130        /// <returns></returns>
131        public static Color FromHexCode( string hexString )
132        {
133            if ( hexString.StartsWith( "#" ) )
134                hexString = hexString.Substring( 1 );
135
136            uint hex = uint.Parse( hexString, NumberStyles.HexNumber, CultureInfo.InvariantCulture );
137            Color color = Color.White;
138
139            if ( hexString.Length == 8 )
140            {
141                color.AlphaComponent = (byte)( hex >> 24 );
142                color.RedComponent = (byte)( hex >> 16 );
143                color.GreenComponent = (byte)( hex >> 8 );
144                color.BlueComponent = (byte)( hex );
145            }
146            else if ( hexString.Length == 6 )
147            {
148                color.RedComponent = (byte)( hex >> 16 );
149                color.GreenComponent = (byte)( hex >> 8 );
150                color.BlueComponent = (byte)( hex );
151            }
152            else
153            {
154                throw new InvalidOperationException( "Invald hex representation of an ARGB or RGB color value." );
155            }
156
157            return color;
158        }
159
160        /// <summary>
161        /// Antaa värin Paint.net -ohjelman paletista.
162        /// </summary>
163        /// <param name="row">Rivi (0-1)</param>
164        /// <param name="col">Sarake (0-15)</param>
165        /// <returns>Väri</returns>
166        public static Color FromPaintDotNet( int row, int col )
167        {
168            if ( row < 0 || row > 1 || col < 0 || col > 15 )
169                throw new ArgumentException( "Row must be between 0 and 1 and column between 0 and 15." );
170
171            Color[,] colors = {
172                {
173                    Color.Black, Color.DarkGray, Color.Red, Color.Orange,
174                    Color.Gold, Color.YellowGreen, Color.Harlequin, Color.BrightGreen,
175                    Color.SpringGreen, Color.Cyan, Color.Azure, Color.PaintDotNetBlue,
176                    Color.HanPurple, Color.Violet, Color.PaintDotNetMagenta, Color.Rose
177                },
178                {
179                    Color.White, Color.Gray, Color.DarkRed, Color.Brown, 
180                    Color.Olive, Color.BrownGreen, Color.ForestGreen, Color.DarkForestGreen, 
181                    Color.DarkJungleGreen, Color.DarkCyan, Color.DarkAzure, Color.DarkBlue, 
182                    Color.MidnightBlue,Color.DarkViolet, Color.Purple, Color.BloodRed
183                }
184            };
185
186            return colors[row, col];
187        }
188
189        /// <summary>
190        /// Ottaa kokonaisluvusta alpha-arvon
191        /// </summary>
192        /// <param name="c">luku josta otetaan</param>
193        /// <returns>Alpha-arvo</returns>
194        public static byte GetAlpha( uint c )
195        {
196            return (byte)( ( c >> 24 ) & 0xff );
197        }
198
199
200        /// <summary>
201        /// Ottaa kokonaisluvusta alpha-arvon
202        /// </summary>
203        /// <param name="c">luku josta otetaan</param>
204        /// <returns>Alpha-arvo</returns>
205        public static byte GetAlpha( int c )
206        {
207            return (byte)( ( c >> 24 ) & 0xff );
208        }
209
210
211        /// <summary>
212        /// Ottaa kokonaisluvusta punaisen värin
213        /// </summary>
214        /// <param name="c">luku josta otetaan</param>
215        /// <returns>punaisen osuus</returns>
216        public static byte GetRed( uint c )
217        {
218            return (byte)( ( c >> 16 ) & 0xff );
219        }
220
221
222        /// <summary>
223        /// Ottaa kokonaisluvusta vihreän värin
224        /// </summary>
225        /// <param name="c">luku josta otetaan</param>
226        /// <returns>vihreän osuus</returns>
227        public static byte GetGreen( uint c )
228        {
229            return (byte)( ( c >> 8 ) & 0xff );
230        }
231
232
233        /// <summary>
234        /// Ottaa kokonaisluvusta sinisen värin
235        /// </summary>
236        /// <param name="c">luku josta otetaan</param>
237        /// <returns>sinisen osuus</returns>
238        public static byte GetBlue( uint c )
239        {
240            return (byte)( ( c >> 0 ) & 0xff );
241        }
242
243
244        /// <summary>
245        /// Tekee kokonaisluvusta värin
246        /// </summary>
247        /// <param name="c">ARGB-arvon sisältävä kokonaisluku</param>
248        /// <returns></returns>
249        public static Color IntToColor( int c )
250        {
251            return new Color( (byte)( ( c >> 16 ) & 0xff ), (byte)( ( c >> 8 ) & 0xff ),
252                             (byte)( ( c ) & 0xff ), (byte)( ( c >> 24 ) & 0xff ) );
253        }
254
255
256        /// <summary>
257        /// Tekee kokonaisluvusta värin
258        /// </summary>
259        /// <param name="c">ARGB-arvon sisältävä kokonaisluku</param>
260        /// <returns></returns>
261        public static Color UIntToColor( uint c )
262        {
263            return new Color( (byte)( ( c >> 16 ) & 0xff ), (byte)( ( c >> 8 ) & 0xff ),
264                             (byte)( ( c ) & 0xff ), (byte)( ( c >> 24 ) & 0xff ) );
265        }
266
267        /// <summary>
268        /// Laskee kahden värin (euklidisen) etäisyyden RGB-väriavaruudessa.
269        /// Värikomponentit ovat välillä 0-255 joten suurin mahdollinen etäisyys
270        /// (musta ja valkoinen) on noin 441,68.
271        /// </summary>
272        /// <returns>Etäisyys</returns>
273        public static double Distance( Color a, Color b )
274        {
275            double rd = Math.Pow( a.RedComponent - b.RedComponent, 2 );
276            double gd = Math.Pow( a.GreenComponent - b.GreenComponent, 2 );
277            double bd = Math.Pow( a.BlueComponent - b.BlueComponent, 2 );
278            return Math.Sqrt( rd + gd + bd );
279        }
280
281        /// <summary>
282        /// Laskee kahden värin (euklidisen) etäisyyden RGB-väriavaruudessa.
283        /// Värikomponentit ovat välillä 0-255 joten suurin mahdollinen etäisyys
284        /// (musta ja valkoinen) on noin 441,68.
285        /// </summary>
286        /// <returns>Etäisyys</returns>
287        internal static double Distance( XnaColor a, XnaColor b )
288        {
289            double rd = Math.Pow( a.R - b.R, 2 );
290            double gd = Math.Pow( a.G - b.G, 2 );
291            double bd = Math.Pow( a.B - b.B, 2 );
292            return Math.Sqrt( rd + gd + bd );
293        }
294
295        /// <summary>
296        /// Muuttaa värin ARGB-kokonaisluvuksi
297        /// </summary>
298        /// <returns></returns>
299        public int ToInt()
300        {
301            return ( AlphaComponent << 24 ) + ( RedComponent << 16 ) + ( GreenComponent << 8 ) + BlueComponent;
302        }
303
304        /// <summary>
305        /// Muuttaa värin RGB-kokonaisluvuksi
306        /// </summary>
307        /// <returns></returns>
308        public int ToIntRGB()
309        {
310            return ( RedComponent << 16 ) + ( GreenComponent << 8 ) + BlueComponent;
311        }
312
313        /// <summary>
314        /// Muuttaa värin ARGB-kokonaisluvuksi
315        /// </summary>
316        /// <returns></returns>
317        public uint ToUInt()
318        {
319            return (uint)ToInt();
320        }
321
322        /// <summary>
323        /// Palautetaan väri heksamerkkijonona
324        /// </summary>
325        /// <returns></returns>
326        public override string ToString()
327        {
328            return ToString( true );
329        }
330
331        /// <summary>
332        /// Palautetaan väri heksamerkkijonona.
333        /// </summary>
334        /// <param name="alpha">Otetaanko läpinäkyvyys mukaan (8 merkin heksakoodi)</param>
335        /// <returns></returns>
336        public string ToString( bool alpha )
337        {
338            if ( alpha )
339                return ToInt().ToString( "X8" );
340
341            return ToIntRGB().ToString( "X6" );
342        }
343
344        public static bool operator ==( Color c1, Color c2 )
345        {
346            return c1.RedComponent == c2.RedComponent
347                && c1.GreenComponent == c2.GreenComponent
348                && c1.BlueComponent == c2.BlueComponent
349                && c1.AlphaComponent == c2.AlphaComponent;
350        }
351
352
353        public static bool operator ==( Color c1, uint i2 )
354        {
355            return c1.ToUInt() == i2;
356        }
357
358        public static bool operator !=( Color c1, uint i2 )
359        {
360            return c1.ToUInt() != i2;
361        }
362
363        public static bool operator ==( Color c1, int i2 )
364        {
365            return c1.ToUInt() == (uint)i2;
366        }
367
368        public static bool operator !=( Color c1, int i2 )
369        {
370            return c1.ToUInt() != (uint)i2;
371        }
372
373        public override int GetHashCode()
374        {
375            return ToInt();
376        }
377
378        public override bool Equals( Object c2 )
379        {
380            if ( c2 is Color ) return this == (Color)c2;
381            if ( c2 is uint ) return this == (uint)c2;
382            if ( c2 is int ) return this == (uint)c2;
383            return false;
384        }
385
386
387        public static bool operator !=( Color c1, Color c2 )
388        {
389            return !( c1 == c2 );
390        }
391
392        public static Color Lerp( Color value1, Color value2, double amount )
393        {
394            return new Color( XnaColor.Lerp(
395                value1.AsXnaColor(),
396                value2.AsXnaColor(),
397                (float)amount ) );
398        }
399
400        /// <summary>
401        /// Antaa tummemman värin. Vähentaa jokaista kolmea osaväriä arvon <c>howMuch</c>
402        /// verran.
403        /// </summary>
404        /// <param name="c">Alkuperäinen väri.</param>
405        /// <param name="howMuch">Kuinka paljon tummempi (positiivinen luku).</param>
406        /// <returns>Tummempi väri.</returns>
407        public static Color Darker( Color c, int howMuch )
408        {
409            int r = (int)c.RedComponent - howMuch;
410            int g = (int)c.GreenComponent - howMuch;
411            int b = (int)c.BlueComponent - howMuch;
412            if ( r < 0 ) r = 0;
413            if ( g < 0 ) g = 0;
414            if ( b < 0 ) b = 0;
415            Microsoft.Xna.Framework.Color x = c.AsXnaColor();
416            return new Color( (byte)r, (byte)g, (byte)b, c.AlphaComponent );
417        }
418
419        /// <summary>
420        /// Antaa kirkkaamman värin. Kasvattaa jokaista kolmea osaväriä arvon <c>howMuch</c>
421        /// verran.
422        /// </summary>
423        /// <param name="c">Alkuperäinen väri.</param>
424        /// <param name="howMuch">Kuinka paljon vaaleampi.</param>
425        /// <returns>Vaaleampi väri.</returns>
426        public static Color Lighter( Color c, int howMuch )
427        {
428            int r = (int)c.RedComponent + howMuch;
429            int g = (int)c.GreenComponent + howMuch;
430            int b = (int)c.BlueComponent + howMuch;
431            if ( r > byte.MaxValue ) r = byte.MaxValue;
432            if ( g > byte.MaxValue ) g = byte.MaxValue;
433            if ( b > byte.MaxValue ) b = byte.MaxValue;
434            Microsoft.Xna.Framework.Color x = c.AsXnaColor();
435            return new Color( (byte)r, (byte)g, (byte)b, c.AlphaComponent );
436        }
437
438        /// <summary>
439        /// Tuhkanharmaa.
440        /// </summary>
441        public static readonly Color AshGray = new Color( 178, 190, 181, 255 );
442
443        /// <summary>
444        /// Vedensininen.
445        /// </summary>
446        public static readonly Color Aqua = new Color( 0, 255, 255, 255 );
447
448        /// <summary>
449        /// Akvamariini.
450        /// </summary>
451        public static readonly Color Aquamarine = new Color( 127, 255, 212, 255 );
452
453        /// <summary>
454        /// Asuurinsininen.
455        /// </summary>
456        public static readonly Color Azure = new Color( 0, 148, 255, 255 );
457
458        /// <summary>
459        /// Beessi.
460        /// </summary>
461        public static readonly Color Beige = new Color( 245, 245, 220, 255 );
462
463        /// <summary>
464        /// Musta.
465        /// </summary>
466        public static readonly Color Black = new Color( 0, 0, 0, 255 );
467
468        /// <summary>
469        /// Verenpunainen.
470        /// </summary>
471        public static readonly Color BloodRed = new Color( 127, 0, 55, 255 );
472
473        /// <summary>
474        /// Sininen.
475        /// </summary>
476        public static readonly Color Blue = new Color( 0, 0, 255, 255 );
477
478        /// <summary>
479        /// Siniharmaa.
480        /// </summary>
481        public static readonly Color BlueGray = new Color( 102, 153, 204, 255 );
482
483        /// <summary>
484        /// Kirkkaan vihreä.
485        /// </summary>
486        public static readonly Color BrightGreen = new Color( 0, 255, 33, 255 );
487
488        /// <summary>
489        /// Ruskea.
490        /// </summary>
491        public static readonly Color Brown = new Color( 127, 51, 0, 255 );
492
493        /// <summary>
494        /// Ruskeanvihreä.
495        /// </summary>
496        public static readonly Color BrownGreen = new Color( 91, 127, 0, 255 );
497
498        /// <summary>
499        /// Karmiininpunainen.
500        /// </summary>
501        public static readonly Color Crimson = new Color( 220, 20, 60, 255 );
502
503        /// <summary>
504        /// Syaani.
505        /// </summary>
506        public static readonly Color Cyan = new Color( 0, 255, 255, 255 );
507
508        /// <summary>
509        /// Hiilenmusta.
510        /// </summary>
511        public static readonly Color Charcoal = new Color( 54, 69, 79, 255 );
512
513        /// <summary>
514        /// Tumma asuuri.
515        /// </summary>
516        public static readonly Color DarkAzure = new Color( 0, 74, 127, 255 );
517
518        /// <summary>
519        /// Tumma ruskea.
520        /// </summary>
521        public static readonly Color DarkBrown = new Color( 92, 64, 51, 255 );
522
523        /// <summary>
524        /// Tumma sininen.
525        /// </summary>
526        public static readonly Color DarkBlue = new Color( 0, 19, 127, 255 );
527
528        /// <summary>
529        /// Tumma syaani.
530        /// </summary>
531        public static readonly Color DarkCyan = new Color( 0, 127, 127, 255 );
532
533        /// <summary>
534        /// Tumma metsänvihreä.
535        /// </summary>
536        public static readonly Color DarkForestGreen = new Color( 0, 127, 14 );
537
538        /// <summary>
539        /// Tumma harmaa.
540        /// </summary>
541        public static readonly Color DarkGray = new Color( 64, 64, 64, 255 );
542
543        /// <summary>
544        /// Tumma vihreä.
545        /// </summary>
546        public static readonly Color DarkGreen = new Color( 0, 100, 0, 255 );
547
548        /// <summary>
549        /// Tumma viidakonvihreä.
550        /// </summary>
551        public static readonly Color DarkJungleGreen = new Color( 0, 127, 70, 255 );
552
553        /// <summary>
554        /// Tumma magenta (purppura).
555        /// </summary>
556        public static readonly Color DarkMagenta = Color.Purple;
557
558        /// <summary>
559        /// Tumma oranssi / ruskea.
560        /// </summary>
561        public static readonly Color DarkOrange = Color.Brown;
562
563        /// <summary>
564        /// Tumma punainen.
565        /// </summary>
566        public static readonly Color DarkRed = new Color( 127, 0, 0, 255 );
567
568        /// <summary>
569        /// Tumma turkoosi.
570        /// </summary>
571        public static readonly Color DarkTurquoise = new Color( 0, 206, 209, 255 );
572
573        /// <summary>
574        /// Tumma violetti.
575        /// </summary>
576        public static readonly Color DarkViolet = new Color( 87, 0, 127, 255 );
577
578        /// <summary>
579        /// Tumma keltainen (oliivi).
580        /// </summary>
581        public static readonly Color DarkYellow = Color.Olive;
582
583        /// <summary>
584        /// Tumma keltavihreä (ruskeanvihreä).
585        /// </summary>
586        public static readonly Color DarkYellowGreen = Color.BrownGreen;
587
588        /// <summary>
589        /// Smaragdinvihreä.
590        /// </summary>
591        public static readonly Color Emerald = new Color( 80, 200, 120, 255 );
592
593        /// <summary>
594        /// Metsänvihreä.
595        /// </summary>
596        public static readonly Color ForestGreen = new Color( 38, 127, 0 );
597
598        /// <summary>
599        /// Fuksia (pinkki)
600        /// </summary>
601        public static readonly Color Fuchsia = new Color( 255, 0, 255, 255 );
602
603        /// <summary>
604        /// Kulta.
605        /// </summary>
606        public static readonly Color Gold = new Color( 255, 216, 0, 255 );
607
608        /// <summary>
609        /// Harmaa.
610        /// </summary>
611        public static readonly Color Gray = new Color( 128, 128, 128, 255 );
612
613        /// <summary>
614        /// Vihreä.
615        /// </summary>
616        public static readonly Color Green = new Color( 0, 128, 0, 255 );
617
618        /// <summary>
619        /// Keltavihreä.
620        /// </summary>
621        public static readonly Color GreenYellow = new Color( 173, 255, 47, 255 );
622
623        /// <summary>
624        /// Sinipurppurainen väri Han-dynastian ajoilta.
625        /// </summary>
626        public static readonly Color HanPurple = new Color( 72, 0, 255, 255 );
627
628        /// <summary>
629        /// Harlekiini (hieman keltaisella sävytetty kirkas vihreä).
630        /// </summary>
631        public static readonly Color Harlequin = new Color( 76, 255, 0, 255 );
632
633        /// <summary>
634        /// Pinkki.
635        /// </summary>
636        public static readonly Color HotPink = new Color( 255, 105, 180, 255 );
637
638        /// <summary>
639        /// Norsunluu.
640        /// </summary>
641        public static readonly Color Ivory = new Color( 255, 255, 240, 255 );
642
643        /// <summary>
644        /// Viidakonvihreä.
645        /// </summary>
646        public static readonly Color JungleGreen = new Color( 41, 171, 135, 255 );
647
648        /// <summary>
649        /// Laventeli.
650        /// </summary>
651        public static readonly Color Lavender = new Color( 220, 208, 255, 255 );
652
653        /// <summary>
654        /// Vaalea sininen.
655        /// </summary>
656        public static readonly Color LightBlue = new Color( 173, 216, 230, 255 );
657
658        /// <summary>
659        /// Vaalea syaani.
660        /// </summary>
661        public static readonly Color LightCyan = new Color( 224, 255, 255, 255 );
662
663        /// <summary>
664        /// Vaalea harmaa.
665        /// </summary>
666        public static readonly Color LightGray = new Color( 211, 211, 211, 255 );
667
668        /// <summary>
669        /// Vaalea vihreä.
670        /// </summary>
671        public static readonly Color LightGreen = new Color( 144, 238, 144, 255 );
672
673        /// <summary>
674        /// Vaalea vaaleanpunainen.
675        /// </summary>
676        public static readonly Color LightPink = new Color( 255, 182, 193, 255 );
677
678        /// <summary>
679        /// Vaalea keltainen.
680        /// </summary>
681        public static readonly Color LightYellow = new Color( 255, 255, 224, 255 );
682
683        /// <summary>
684        /// Limetti.
685        /// </summary>
686        public static readonly Color Lime = new Color( 0, 255, 0, 255 );
687
688        /// <summary>
689        /// Limetinvihreä.
690        /// </summary>
691        public static readonly Color LimeGreen = new Color( 50, 205, 50, 255 );
692
693        /// <summary>
694        /// Magenta (pinkki)
695        /// </summary>
696        public static readonly Color Magenta = new Color( 255, 0, 255, 255 );
697
698        /// <summary>
699        /// Viininpunainen.
700        /// </summary>
701        public static readonly Color Maroon = new Color( 128, 0, 0, 255 );
702
703        /// <summary>
704        /// Tummahko sininen.
705        /// </summary>
706        public static readonly Color MediumBlue = new Color( 0, 0, 205, 255 );
707
708        /// <summary>
709        /// Tummahko purppura.
710        /// </summary>
711        public static readonly Color MediumPurple = new Color( 147, 112, 219, 255 );
712
713        /// <summary>
714        /// Tummahko turkoosi.
715        /// </summary>
716        public static readonly Color MediumTurquoise = new Color( 72, 209, 204, 255 );
717
718        /// <summary>
719        /// Tummahko punavioletti.
720        /// </summary>
721        public static readonly Color MediumVioletRed = new Color( 199, 21, 133, 255 );
722
723        /// <summary>
724        /// Keskiyön sininen.
725        /// </summary>
726        public static readonly Color MidnightBlue = new Color( 33, 0, 127, 255 );
727
728        /// <summary>
729        /// Mintunvihreä.
730        /// </summary>
731        public static readonly Color Mint = new Color( 62, 180, 137, 255 );
732
733        /// <summary>
734        /// Laivastonsininen.
735        /// </summary>
736        public static readonly Color Navy = new Color( 0, 0, 128, 255 );
737
738        /// <summary>
739        /// Oliivi (tumma keltainen).
740        /// </summary>
741        public static readonly Color Olive = new Color( 127, 106, 0, 255 );
742
743        /// <summary>
744        /// Oranssi.
745        /// </summary>
746        public static readonly Color Orange = new Color( 255, 106, 0, 255 );
747
748        /// <summary>
749        /// Punaoranssi.
750        /// </summary>
751        public static readonly Color OrangeRed = new Color( 255, 69, 0, 255 );
752
753        /// <summary>
754        /// Paint.NETin sininen väri.
755        /// </summary>
756        public static readonly Color PaintDotNetBlue = new Color( 0, 38, 255, 255 );
757
758        /// <summary>
759        /// Paint.NETin magenta (pinkki) väri.
760        /// </summary>
761        public static readonly Color PaintDotNetMagenta = new Color( 255, 0, 220, 255 );
762
763        /// <summary>
764        /// Vaaleanpunainen.
765        /// </summary>
766        public static readonly Color Pink = new Color( 255, 192, 203, 255 );
767
768        /// <summary>
769        /// Purppura.
770        /// </summary>
771        public static readonly Color Purple = new Color( 127, 0, 110, 255 );
772
773        /// <summary>
774        /// Punainen.
775        /// </summary>
776        public static readonly Color Red = new Color( 255, 0, 0, 255 );
777
778        /// <summary>
779        /// Rose (punainen).
780        /// </summary>
781        public static readonly Color Rose = new Color( 255, 0, 110, 255 );
782
783        /// <summary>
784        /// Rose-pinkki.
785        /// </summary>
786        public static readonly Color RosePink = new Color( 251, 204, 231, 255 );
787
788        /// <summary>
789        /// Rubiininpunainen.
790        /// </summary>
791        public static readonly Color Ruby = new Color( 224, 17, 95, 255 );
792
793        /// <summary>
794        /// Lohenpunainen.
795        /// </summary>
796        public static readonly Color Salmon = new Color( 250, 128, 114, 255 );
797
798        /// <summary>
799        /// Merensininen.
800        /// </summary>
801        public static readonly Color SeaGreen = new Color( 46, 139, 87, 255 );
802
803        /// <summary>
804        /// Hopea.
805        /// </summary>
806        public static readonly Color Silver = new Color( 192, 192, 192, 255 );
807
808        /// <summary>
809        /// Taivaansininen.
810        /// </summary>
811        public static readonly Color SkyBlue = new Color( 135, 206, 235, 255 );
812
813        /// <summary>
814        /// Saviliuskeensininen.
815        /// </summary>
816        public static readonly Color SlateBlue = new Color( 106, 90, 205, 255 );
817
818        /// <summary>
819        /// Saviliuskeenharmaa.
820        /// </summary>
821        public static readonly Color SlateGray = new Color( 112, 128, 144, 255 );
822
823        /// <summary>
824        /// Lumenvalkoinen.
825        /// </summary>
826        public static readonly Color Snow = new Color( 255, 250, 250, 255 );
827
828        /// <summary>
829        /// Kevään vihreä.
830        /// </summary>
831        public static readonly Color SpringGreen = new Color( 0, 255, 144, 255 );
832
833        /// <summary>
834        /// Sinivihreä.
835        /// </summary>
836        public static readonly Color Teal = new Color( 0, 128, 128, 255 );
837
838        /// <summary>
839        /// Läpinäkyvä väri.
840        /// </summary>
841        public static readonly Color Transparent = new Color( XnaColor.Transparent );
842
843        /// <summary>
844        /// Turkoosi.
845        /// </summary>
846        public static readonly Color Turquoise = new Color( 64, 224, 208, 255 );
847
848        /// <summary>
849        /// Ultramariini (tumma sininen).
850        /// </summary>
851        public static readonly Color Ultramarine = new Color( 18, 10, 143, 255 );
852
853        /// <summary>
854        /// Violetti.
855        /// </summary>
856        public static readonly Color Violet = new Color( 178, 0, 255, 255 );
857
858        /// <summary>
859        /// Luonnonvalkoinen.
860        /// </summary>
861        public static readonly Color Wheat = new Color( 245, 222, 179, 255 );
862
863        /// <summary>
864        /// Valkoinen.
865        /// </summary>
866        public static readonly Color White = new Color( 255, 255, 255, 255 );
867
868        /// <summary>
869        /// Keltainen.
870        /// </summary>
871        public static readonly Color Yellow = new Color( 255, 255, 0, 255 );
872
873        /// <summary>
874        /// Keltavihreä.
875        /// </summary>
876        public static readonly Color YellowGreen = new Color( 182, 255, 0, 255 );
877    }
878}
Note: See TracBrowser for help on using the repository browser.