MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
colourvalue.h
1 // © Copyright 2010 - 2014 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 #ifndef _colourvalue_h
41 #define _colourvalue_h
42 
43 #include "crossplatformexport.h"
44 #include "datatypes.h"
45 #ifndef SWIG
46  #include "XML/xml.h"
47 #endif
48 
49 namespace Ogre
50 {
51  class ColourValue;
52 }
53 
54 namespace Mezzanine
55 {
56  ///////////////////////////////////////////////////////////////////////////////
57  /// @class ColourValue
58  /// @headerfile colourvalue.h
59  /// @brief This is a simple class for holding 4 reals representing the colour any give object or lightsource can have.
60  /// @note Calling the Color helper function from scripting languages without static function support is odd,
61  /// instead of a scoping operator and underscore is used in the identifier name, for example in Lua use the following syntax:
62  /// alicedressbeforegunfight=MezzanineSafe.ColourValue_AliceBlue()
63  ///////////////////////////////////////
65  {
66  public:
67  #ifndef SWIG
68  /// @brief Value from 0.0 to 1.0 representing the amount of red present in the colour. 1.0 if very red, 0.0 is no red.
69  /// @note Not accessible from scripting languages
71  /// @brief Value from 0.0 to 1.0 representing the amount of green present in the colour. 1.0 if very green, 0.0 is no green.
72  /// @note Not accessible from scripting languages
74  /// @brief Value from 0.0 to 1.0 representing the amount of blue present in the colour. 1.0 if very blue, 0.0 is no blue.
75  /// @note Not accessible from scripting languages
77  /// @brief Value from 0.0 to 1.0 representing the transparency of the colours. 1.0 is opaque and 0.0 is clear.
78  /// @note Not accessible from scripting languages
80  #endif
81 
82  /// @brief 4 Reals constructor.
83  /// @details This constructor allows you to set any values, if unset, they default to 1.0.
84  /// @param Red Real representing the amount of red present in the colour.
85  /// @param Green Real representing the amount of green present in the colour.
86  /// @param Blue Real representing the amount of blue present in the colour.
87  /// @param Alpha Real representing the transparency of the colours.
88  ColourValue(Real Red = 1.0, Real Green = 1.0, Real Blue = 1.0, Real Alpha = 1.0);
89 
90  #ifndef SWIG
91  /// @brief Ogre constructor.
92  /// @details Internal use only. Constructs a colourvalue class from an ogre colourvalue.
93  /// @param OgreValues The Ogre ColourValue class to base this class on.
94  ColourValue(const Ogre::ColourValue& OgreValues);
95  #endif
96 
97  /// @brief Copy Constructor
98  /// @param OtherColour
99  ColourValue(const ColourValue& OtherColour);
100  /// @brief XML Constructor.
101  /// @param OneNode The XML node to deserialize from.
102  ColourValue(const XML::Node& OneNode);
103  /// @brief Class destructor.
104  ~ColourValue();
105 
106  ///////////////////////////////////////////////////////////////////////////////
107  // Conversion Methods
108 
109  /// @brief Creates and returns an Ogre ColourValue class with values equal to this one.
110  /// @details This function is intended for internal use only.
111  /// @return Returns an Ogre ColourValue class that has values equal to this one.
112  Ogre::ColourValue GetOgreColourValue() const;
113 
114  ///////////////////////////////////////////////////////////////////////////////
115  // Utility
116 
117  /// @brief Set the Red component of this color
118  /// @param Red A Real between 0 and 1 signify how much red this will color with have.
119  void SetRedChannel(const Real& Red);
120  /// @brief Retrieve the Red color component
121  /// @return A Real between 0 and 1 respresenting, how Red this this color is.
122  Real GetRedChannel() const;
123  /// @brief Set the Green component of this color
124  /// @param Green A Real between 0 and 1 signify how much Green this will color with have.
125  void SetGreenChannel(const Real& Green);
126  /// @brief Retrieve the Green color component
127  /// @return A Real between 0 and 1 respresenting, how Green this this color is.
128  Real GetGreenChannel() const;
129  /// @brief Set the Blue component of this color
130  /// @param Blue A Real between 0 and 1 signify how much Blue this will color with have.
131  void SetBlueChannel(const Real& Blue);
132  /// @brief Retrieve the Blue color component
133  /// @return A Real between 0 and 1 respresenting, how Blue this this color is.
134  Real GetBlueChannel() const;
135  /// @brief Set the Alpha component of this color
136  /// @param Red A Alpha between 0 and 1 signify how much Opaque/Transparent this will color with have.
137  void SetAlphaChannel(const Real& Alpha);
138  /// @brief Retrieve the Alpha color component
139  /// @return A Real between 0 and 1 respresenting, how Transparent this this color is.
140  Real GetAlphaChannel() const;
141 
142  /// @brief Get the color that is the average of this and another color.
143  /// @param OtherColor The other color to average with.
144  /// @return A ColourValue with each channel being the arithmetic mean of this and the OtherColor.
145  ColourValue Average(const ColourValue& OtherColor) const;
146 
147  ///////////////////////////////////////////////////////////////////////////////
148  // Overloaded Operators
149 
150  /// @brief Equality Comparison Operator
151  /// @param Colour This is another ColourValue to compare with.
152  /// @return True if the colors match perfectly, false otherwise
153  bool operator==(const ColourValue& Colour) const;
154  /// @brief Inequality Comparison Operator
155  /// @param Colour This is another ColourValue to compare with.
156  /// @return False if the colors match perfectly, True otherwise
157  bool operator!=(const ColourValue& Colour) const;
158 
159  /// @brief Assignment operator.
160  /// @param OtherColour The colour values you want to overwrite this colour's values with.
161  void operator=(const ColourValue& OtherColour);
162 
163  ///////////////////////////////////////////////////////////////////////////////
164  // Prefab Colour fetchers
165 
166  /// @brief Creates a ColourValue representing no colour.
167  /// @return Returns the created ColourValue.
168  static ColourValue Transparent();
169 
170  ///////////////////////////////////////////////////////////////////////////////
171  // X11 Colour Prefabs
172 
173  /// @brief Creates a ColourValue representing the colour AliceBlue.
174  /// @return Returns the created ColourValue.
175  static ColourValue AliceBlue();
176  /// @brief Creates a ColourValue representing the colour AntiqueWhite.
177  /// @return Returns the created ColourValue.
178  static ColourValue AntiqueWhite();
179  /// @brief Creates a ColourValue representing the colour Aqua.
180  /// @return Returns the created ColourValue.
181  static ColourValue Aqua();
182  /// @brief Creates a ColourValue representing the colour Aquamarine.
183  /// @return Returns the created ColourValue.
184  static ColourValue Aquamarine();
185  /// @brief Creates a ColourValue representing the colour Azure.
186  /// @return Returns the created ColourValue.
187  static ColourValue Azure();
188  /// @brief Creates a ColourValue representing the colour Beige.
189  /// @return Returns the created ColourValue.
190  static ColourValue Beige();
191  /// @brief Creates a ColourValue representing the colour Bisque.
192  /// @return Returns the created ColourValue.
193  static ColourValue Bisque();
194  /// @brief Creates a ColourValue representing the colour Black.
195  /// @return Returns the created ColourValue.
196  static ColourValue Black();
197  /// @brief Creates a ColourValue representing the colour Blanchedalmond.
198  /// @return Returns the created ColourValue.
199  static ColourValue Blanchedalmond();
200  /// @brief Creates a ColourValue representing the colour Blue.
201  /// @return Returns the created ColourValue.
202  static ColourValue Blue();
203  /// @brief Creates a ColourValue representing the colour BlueViolet.
204  /// @return Returns the created ColourValue.
205  static ColourValue BlueViolet();
206  /// @brief Creates a ColourValue representing the colour Brown.
207  /// @return Returns the created ColourValue.
208  static ColourValue Brown();
209  /// @brief Creates a ColourValue representing the colour BurlyWood.
210  /// @return Returns the created ColourValue.
211  static ColourValue BurlyWood();
212  /// @brief Creates a ColourValue representing the colour CadetBlue.
213  /// @return Returns the created ColourValue.
214  static ColourValue CadetBlue();
215  /// @brief Creates a ColourValue representing the colour Chartreuse.
216  /// @return Returns the created ColourValue.
217  static ColourValue Chartreuse();
218  /// @brief Creates a ColourValue representing the colour Chocolate.
219  /// @return Returns the created ColourValue.
220  static ColourValue Chocolate();
221  /// @brief Creates a ColourValue representing the colour Coral.
222  /// @return Returns the created ColourValue.
223  static ColourValue Coral();
224  /// @brief Creates a ColourValue representing the colour CornFlowerBlue.
225  /// @return Returns the created ColourValue.
226  static ColourValue CornFlowerBlue();
227  /// @brief Creates a ColourValue representing the colour CornSilk.
228  /// @return Returns the created ColourValue.
229  static ColourValue CornSilk();
230  /// @brief Creates a ColourValue representing the colour Crimson.
231  /// @return Returns the created ColourValue.
232  static ColourValue Crimson();
233  /// @brief Creates a ColourValue representing the colour Cyan.
234  /// @return Returns the created ColourValue.
235  static ColourValue Cyan();
236  /// @brief Creates a ColourValue representing the colour DarkBlue.
237  /// @return Returns the created ColourValue.
238  static ColourValue DarkBlue();
239  /// @brief Creates a ColourValue representing the colour DarkCyan.
240  /// @return Returns the created ColourValue.
241  static ColourValue DarkCyan();
242  /// @brief Creates a ColourValue representing the colour DarkGoldenRod.
243  /// @return Returns the created ColourValue.
244  static ColourValue DarkGoldenRod();
245  /// @brief Creates a ColourValue representing the colour DarkGray.
246  /// @return Returns the created ColourValue.
247  static ColourValue DarkGray();
248  /// @brief Creates a ColourValue representing the colour DarkGreen.
249  /// @return Returns the created ColourValue.
250  static ColourValue DarkGreen();
251  /// @brief Creates a ColourValue representing the colour DarkKhaki.
252  /// @return Returns the created ColourValue.
253  static ColourValue DarkKhaki();
254  /// @brief Creates a ColourValue representing the colour DarkMagenta.
255  /// @return Returns the created ColourValue.
256  static ColourValue DarkMagenta();
257  /// @brief Creates a ColourValue representing the colour DarkOliveGreen.
258  /// @return Returns the created ColourValue.
259  static ColourValue DarkOliveGreen();
260  /// @brief Creates a ColourValue representing the colour DarkOrange.
261  /// @return Returns the created ColourValue.
262  static ColourValue DarkOrange();
263  /// @brief Creates a ColourValue representing the colour DarkOrchid.
264  /// @return Returns the created ColourValue.
265  static ColourValue DarkOrchid();
266  /// @brief Creates a ColourValue representing the colour DarkRed.
267  /// @return Returns the created ColourValue.
268  static ColourValue DarkRed();
269  /// @brief Creates a ColourValue representing the colour DarkSalmon.
270  /// @return Returns the created ColourValue.
271  static ColourValue DarkSalmon();
272  /// @brief Creates a ColourValue representing the colour DarkSeaGreen.
273  /// @return Returns the created ColourValue.
274  static ColourValue DarkSeaGreen();
275  /// @brief Creates a ColourValue representing the colour DarkSlateBlue.
276  /// @return Returns the created ColourValue.
277  static ColourValue DarkSlateBlue();
278  /// @brief Creates a ColourValue representing the colour DarkSlateGray.
279  /// @return Returns the created ColourValue.
280  static ColourValue DarkSlateGray();
281  /// @brief Creates a ColourValue representing the colour DarkTurquoise.
282  /// @return Returns the created ColourValue.
283  static ColourValue DarkTurquoise();
284  /// @brief Creates a ColourValue representing the colour DarkViolet.
285  /// @return Returns the created ColourValue.
286  static ColourValue DarkViolet();
287  /// @brief Creates a ColourValue representing the colour DeepPink.
288  /// @return Returns the created ColourValue.
289  static ColourValue DeepPink();
290  /// @brief Creates a ColourValue representing the colour DeepSkyBlue.
291  /// @return Returns the created ColourValue.
292  static ColourValue DeepSkyBlue();
293  /// @brief Creates a ColourValue representing the colour DimGray.
294  /// @return Returns the created ColourValue.
295  static ColourValue DimGray();
296  /// @brief Creates a ColourValue representing the colour DodgerBlue.
297  /// @return Returns the created ColourValue.
298  static ColourValue DodgerBlue();
299  /// @brief Creates a ColourValue representing the colour FireBrick.
300  /// @return Returns the created ColourValue.
301  static ColourValue FireBrick();
302  /// @brief Creates a ColourValue representing the colour FloralWhite.
303  /// @return Returns the created ColourValue.
304  static ColourValue FloralWhite();
305  /// @brief Creates a ColourValue representing the colour ForestGreen.
306  /// @return Returns the created ColourValue.
307  static ColourValue ForestGreen();
308  /// @brief Creates a ColourValue representing the colour Fuchsia.
309  /// @return Returns the created ColourValue.
310  static ColourValue Fuchsia();
311  /// @brief Creates a ColourValue representing the colour Gainsboro.
312  /// @return Returns the created ColourValue.
313  static ColourValue Gainsboro();
314  /// @brief Creates a ColourValue representing the colour GhostWhite.
315  /// @return Returns the created ColourValue.
316  static ColourValue GhostWhite();
317  /// @brief Creates a ColourValue representing the colour Gold.
318  /// @return Returns the created ColourValue.
319  static ColourValue Gold();
320  /// @brief Creates a ColourValue representing the colour GoldenRod.
321  /// @return Returns the created ColourValue.
322  static ColourValue GoldenRod();
323  /// @brief Creates a ColourValue representing the colour Gray.
324  /// @return Returns the created ColourValue.
325  static ColourValue Gray();
326  /// @brief Creates a ColourValue representing the colour Green.
327  /// @return Returns the created ColourValue.
328  static ColourValue Green();
329  /// @brief Creates a ColourValue representing the colour GreenYellow.
330  /// @return Returns the created ColourValue.
331  static ColourValue GreenYellow();
332  /// @brief Creates a ColourValue representing the colour HoneyDew.
333  /// @return Returns the created ColourValue.
334  static ColourValue HoneyDew();
335  /// @brief Creates a ColourValue representing the colour HotPink.
336  /// @return Returns the created ColourValue.
337  static ColourValue HotPink();
338  /// @brief Creates a ColourValue representing the colour IndianRed.
339  /// @return Returns the created ColourValue.
340  static ColourValue IndianRed();
341  /// @brief Creates a ColourValue representing the colour Indigo.
342  /// @return Returns the created ColourValue.
343  static ColourValue Indigo();
344  /// @brief Creates a ColourValue representing the colour Ivory.
345  /// @return Returns the created ColourValue.
346  static ColourValue Ivory();
347  /// @brief Creates a ColourValue representing the colour Khaki.
348  /// @return Returns the created ColourValue.
349  static ColourValue Khaki();
350  /// @brief Creates a ColourValue representing the colour Lavender.
351  /// @return Returns the created ColourValue.
352  static ColourValue Lavender();
353  /// @brief Creates a ColourValue representing the colour LavenderBlush.
354  /// @return Returns the created ColourValue.
355  static ColourValue LavenderBlush();
356  /// @brief Creates a ColourValue representing the colour LawnGreen.
357  /// @return Returns the created ColourValue.
358  static ColourValue LawnGreen();
359  /// @brief Creates a ColourValue representing the colour LemonChiffon.
360  /// @return Returns the created ColourValue.
361  static ColourValue LemonChiffon();
362  /// @brief Creates a ColourValue representing the colour LightBlue.
363  /// @return Returns the created ColourValue.
364  static ColourValue LightBlue();
365  /// @brief Creates a ColourValue representing the colour LightCoral.
366  /// @return Returns the created ColourValue.
367  static ColourValue LightCoral();
368  /// @brief Creates a ColourValue representing the colour LightCyan.
369  /// @return Returns the created ColourValue.
370  static ColourValue LightCyan();
371  /// @brief Creates a ColourValue representing the colour LightGoldenRodYellow.
372  /// @return Returns the created ColourValue.
373  static ColourValue LightGoldenRodYellow();
374  /// @brief Creates a ColourValue representing the colour LightGray.
375  /// @return Returns the created ColourValue.
376  static ColourValue LightGray();
377  /// @brief Creates a ColourValue representing the colour LightGreen.
378  /// @return Returns the created ColourValue.
379  static ColourValue LightGreen();
380  /// @brief Creates a ColourValue representing the colour LightPink.
381  /// @return Returns the created ColourValue.
382  static ColourValue LightPink();
383  /// @brief Creates a ColourValue representing the colour LightSalmon.
384  /// @return Returns the created ColourValue.
385  static ColourValue LightSalmon();
386  /// @brief Creates a ColourValue representing the colour LightSeaGreen.
387  /// @return Returns the created ColourValue.
388  static ColourValue LightSeaGreen();
389  /// @brief Creates a ColourValue representing the colour LightSkyBlue.
390  /// @return Returns the created ColourValue.
391  static ColourValue LightSkyBlue();
392  /// @brief Creates a ColourValue representing the colour LightSlateGray.
393  /// @return Returns the created ColourValue.
394  static ColourValue LightSlateGray();
395  /// @brief Creates a ColourValue representing the colour LightSteelBlue.
396  /// @return Returns the created ColourValue.
397  static ColourValue LightSteelBlue();
398  /// @brief Creates a ColourValue representing the colour LightYellow.
399  /// @return Returns the created ColourValue.
400  static ColourValue LightYellow();
401  /// @brief Creates a ColourValue representing the colour Lime.
402  /// @return Returns the created ColourValue.
403  static ColourValue Lime();
404  /// @brief Creates a ColourValue representing the colour LimeGreen.
405  /// @return Returns the created ColourValue.
406  static ColourValue LimeGreen();
407  /// @brief Creates a ColourValue representing the colour Linen.
408  /// @return Returns the created ColourValue.
409  static ColourValue Linen();
410  /// @brief Creates a ColourValue representing the colour Magenta.
411  /// @return Returns the created ColourValue.
412  static ColourValue Magenta();
413  /// @brief Creates a ColourValue representing the colour Maroon.
414  /// @return Returns the created ColourValue.
415  static ColourValue Maroon();
416  /// @brief Creates a ColourValue representing the colour MediumAquamarine.
417  /// @return Returns the created ColourValue.
418  static ColourValue MediumAquamarine();
419  /// @brief Creates a ColourValue representing the colour MediumBlue.
420  /// @return Returns the created ColourValue.
421  static ColourValue MediumBlue();
422  /// @brief Creates a ColourValue representing the colour MediumOrchid.
423  /// @return Returns the created ColourValue.
424  static ColourValue MediumOrchid();
425  /// @brief Creates a ColourValue representing the colour MediumPurple.
426  /// @return Returns the created ColourValue.
427  static ColourValue MediumPurple();
428  /// @brief Creates a ColourValue representing the colour MediumSeaGreen.
429  /// @return Returns the created ColourValue.
430  static ColourValue MediumSeaGreen();
431  /// @brief Creates a ColourValue representing the colour MediumSlateBlue.
432  /// @return Returns the created ColourValue.
433  static ColourValue MediumSlateBlue();
434  /// @brief Creates a ColourValue representing the colour MediumSpringGreen.
435  /// @return Returns the created ColourValue.
436  static ColourValue MediumSpringGreen();
437  /// @brief Creates a ColourValue representing the colour MediumTurquoise.
438  /// @return Returns the created ColourValue.
439  static ColourValue MediumTurquoise();
440  /// @brief Creates a ColourValue representing the colour MediumVioletRed.
441  /// @return Returns the created ColourValue.
442  static ColourValue MediumVioletRed();
443  /// @brief Creates a ColourValue representing the colour MidnightBlue.
444  /// @return Returns the created ColourValue.
445  static ColourValue MidnightBlue();
446  /// @brief Creates a ColourValue representing the colour MintCream.
447  /// @return Returns the created ColourValue.
448  static ColourValue MintCream();
449  /// @brief Creates a ColourValue representing the colour MistyRose.
450  /// @return Returns the created ColourValue.
451  static ColourValue MistyRose();
452  /// @brief Creates a ColourValue representing the colour Moccasin.
453  /// @return Returns the created ColourValue.
454  static ColourValue Moccasin();
455  /// @brief Creates a ColourValue representing the colour NavajoWhite.
456  /// @return Returns the created ColourValue.
457  static ColourValue NavajoWhite();
458  /// @brief Creates a ColourValue representing the colour Navy.
459  /// @return Returns the created ColourValue.
460  static ColourValue Navy();
461  /// @brief Creates a ColourValue representing the colour OldLace.
462  /// @return Returns the created ColourValue.
463  static ColourValue OldLace();
464  /// @brief Creates a ColourValue representing the colour Olive.
465  /// @return Returns the created ColourValue.
466  static ColourValue Olive();
467  /// @brief Creates a ColourValue representing the colour OliveDrab.
468  /// @return Returns the created ColourValue.
469  static ColourValue OliveDrab();
470  /// @brief Creates a ColourValue representing the colour Orange.
471  /// @return Returns the created ColourValue.
472  static ColourValue Orange();
473  /// @brief Creates a ColourValue representing the colour OrangeRed.
474  /// @return Returns the created ColourValue.
475  static ColourValue OrangeRed();
476  /// @brief Creates a ColourValue representing the colour Orchid.
477  /// @return Returns the created ColourValue.
478  static ColourValue Orchid();
479  /// @brief Creates a ColourValue representing the colour PaleGoldenRod.
480  /// @return Returns the created ColourValue.
481  static ColourValue PaleGoldenRod();
482  /// @brief Creates a ColourValue representing the colour PaleGreen.
483  /// @return Returns the created ColourValue.
484  static ColourValue PaleGreen();
485  /// @brief Creates a ColourValue representing the colour PaleTurquoise.
486  /// @return Returns the created ColourValue.
487  static ColourValue PaleTurquoise();
488  /// @brief Creates a ColourValue representing the colour PaleVioletRed.
489  /// @return Returns the created ColourValue.
490  static ColourValue PaleVioletRed();
491  /// @brief Creates a ColourValue representing the colour PapayaWhip.
492  /// @return Returns the created ColourValue.
493  static ColourValue PapayaWhip();
494  /// @brief Creates a ColourValue representing the colour PeachPuff.
495  /// @return Returns the created ColourValue.
496  static ColourValue PeachPuff();
497  /// @brief Creates a ColourValue representing the colour Peru.
498  /// @return Returns the created ColourValue.
499  static ColourValue Peru();
500  /// @brief Creates a ColourValue representing the colour Pink.
501  /// @return Returns the created ColourValue.
502  static ColourValue Pink();
503  /// @brief Creates a ColourValue representing the colour Plum.
504  /// @return Returns the created ColourValue.
505  static ColourValue Plum();
506  /// @brief Creates a ColourValue representing the colour PowderBlue.
507  /// @return Returns the created ColourValue.
508  static ColourValue PowderBlue();
509  /// @brief Creates a ColourValue representing the colour Purple.
510  /// @return Returns the created ColourValue.
511  static ColourValue Purple();
512  /// @brief Creates a ColourValue representing the colour Red.
513  /// @return Returns the created ColourValue.
514  static ColourValue Red();
515  /// @brief Creates a ColourValue representing the colour RosyBrown.
516  /// @return Returns the created ColourValue.
517  static ColourValue RosyBrown();
518  /// @brief Creates a ColourValue representing the colour RoyalBlue.
519  /// @return Returns the created ColourValue.
520  static ColourValue RoyalBlue();
521  /// @brief Creates a ColourValue representing the colour SaddleBrown.
522  /// @return Returns the created ColourValue.
523  static ColourValue SaddleBrown();
524  /// @brief Creates a ColourValue representing the colour Salmon.
525  /// @return Returns the created ColourValue.
526  static ColourValue Salmon();
527  /// @brief Creates a ColourValue representing the colour SandyBrown.
528  /// @return Returns the created ColourValue.
529  static ColourValue SandyBrown();
530  /// @brief Creates a ColourValue representing the colour SeaGreen.
531  /// @return Returns the created ColourValue.
532  static ColourValue SeaGreen();
533  /// @brief Creates a ColourValue representing the colour SeaShell.
534  /// @return Returns the created ColourValue.
535  static ColourValue SeaShell();
536  /// @brief Creates a ColourValue representing the colour Sienna.
537  /// @return Returns the created ColourValue.
538  static ColourValue Sienna();
539  /// @brief Creates a ColourValue representing the colour Silver.
540  /// @return Returns the created ColourValue.
541  static ColourValue Silver();
542  /// @brief Creates a ColourValue representing the colour SkyBlue.
543  /// @return Returns the created ColourValue.
544  static ColourValue SkyBlue();
545  /// @brief Creates a ColourValue representing the colour SlateBlue.
546  /// @return Returns the created ColourValue.
547  static ColourValue SlateBlue();
548  /// @brief Creates a ColourValue representing the colour SlateGray.
549  /// @return Returns the created ColourValue.
550  static ColourValue SlateGray();
551  /// @brief Creates a ColourValue representing the colour Snow.
552  /// @return Returns the created ColourValue.
553  static ColourValue Snow();
554  /// @brief Creates a ColourValue representing the colour SpringGreen.
555  /// @return Returns the created ColourValue.
556  static ColourValue SpringGreen();
557  /// @brief Creates a ColourValue representing the colour SteelBlue.
558  /// @return Returns the created ColourValue.
559  static ColourValue SteelBlue();
560  /// @brief Creates a ColourValue representing the colour Tan.
561  /// @return Returns the created ColourValue.
562  static ColourValue Tan();
563  /// @brief Creates a ColourValue representing the colour Teal.
564  /// @return Returns the created ColourValue.
565  static ColourValue Teal();
566  /// @brief Creates a ColourValue representing the colour Thistle.
567  /// @return Returns the created ColourValue.
568  static ColourValue Thistle();
569  /// @brief Creates a ColourValue representing the colour Tomato.
570  /// @return Returns the created ColourValue.
571  static ColourValue Tomato();
572  /// @brief Creates a ColourValue representing the colour Turquoise.
573  /// @return Returns the created ColourValue.
574  static ColourValue Turquoise();
575  /// @brief Creates a ColourValue representing the colour Violet.
576  /// @return Returns the created ColourValue.
577  static ColourValue Violet();
578  /// @brief Creates a ColourValue representing the colour Wheat.
579  /// @return Returns the created ColourValue.
580  static ColourValue Wheat();
581  /// @brief Creates a ColourValue representing the colour White.
582  /// @return Returns the created ColourValue.
583  static ColourValue White();
584  /// @brief Creates a ColourValue representing the colour WhiteSmoke.
585  /// @return Returns the created ColourValue.
586  static ColourValue WhiteSmoke();
587  /// @brief Creates a ColourValue representing the colour Yellow.
588  /// @return Returns the created ColourValue.
589  static ColourValue Yellow();
590  /// @brief Creates a ColourValue representing the colour YellowGreen.
591  /// @return Returns the created ColourValue.
592  static ColourValue YellowGreen();
593 
594  ///////////////////////////////////////////////////////////////////////////////
595  // Serialization
596 
597  /// @brief Convert this class to an XML::Node ready for serialization
598  /// @param CurrentRoot The point in the XML hierarchy that all this quaternion should be appended to.
599  void ProtoSerialize(XML::Node& CurrentRoot) const;
600  /// @brief Take the data stored in an XML and overwrite this instance of this object with it
601  /// @param OneNode and XML::Node containing the data.
602  void ProtoDeSerialize(const XML::Node& OneNode);
603  /// @brief Get the name of the the XML tag this class will leave behind as its instances are serialized.
604  /// @return A string containing "ColourValue"
605  static String SerializableName();
606  };// ©olourValue
607 }//Mezzanine
608 
609 #ifndef SWIG
610 ///////////////////////////////////////////////////////////////////////////////
611 // Class External << Operators for streaming or assignment
612 /// @brief Serializes the passed Mezzanine::ColourValue to XML
613 /// @param stream The ostream to send the xml to.
614 /// @param Ev the Mezzanine::ColourValue to be serialized
615 /// @return this returns the ostream, now with the serialized data
616 std::ostream& MEZZ_LIB operator << (std::ostream& stream, const Mezzanine::ColourValue& Ev);
617 
618 /// @brief Deserialize a Mezzanine::ColourValue
619 /// @param stream The istream to get the xml from to (re)make the Mezzanine::ColourValue.
620 /// @param Ev the Mezzanine::ColourValue to be deserialized.
621 /// @return this returns the ostream, advanced past the Mezzanine::ColourValue that was recreated onto Ev.
622 std::istream& MEZZ_LIB operator >> (std::istream& stream, Mezzanine::ColourValue& Ev);
623 
624 /// @brief Set all values of a Mezzanine::ColourValue from parsed xml.
625 /// @param OneNode The istream to get the xml from to (re)make the Mezzanine::ColourValue.
626 /// @param Ev the Mezzanine::ColourValue to be reset.
627 void MEZZ_LIB operator >> (const Mezzanine::XML::Node& OneNode, Mezzanine::ColourValue& Ev);
628 #endif
629 
630 
631 #endif