21 public class Color : Vector4
35 * @param [in] red The Color r.
36 * @param [in] green The Color g.
37 * @param [in] blue The Color b.
38 * @param [in] alpha The Color a.
40 public Color(float red, float green, float blue, float alpha)
41 : base(red, green, blue, alpha)
48 * @param [in] o The Vector4 having r g b a components
50 public Color(Vector4 o)
51 : base(o.x, o.y, o.z, o.w)
60 * @param [in] color as string.
62 public Color(string color)
68 SetColor(255, 0, 0, 255);
71 SetColor(255, 255, 255, 255);
74 SetColor(0, 0, 255, 255);
77 SetColor(0, 255, 0, 255);
80 SetColor(0, 0, 0, 255);
83 SetColor(128, 128, 128, 255);
86 SetColor(255, 255, 0, 255);
89 SetColor(0, 255, 255, 255);
92 SetColor(255, 0, 255, 255);
102 * @param [in] color as enum Colors.
104 public Color(Colors color)
110 SetColor(255, 0, 0, 255);
113 SetColor(255, 255, 255, 255);
116 SetColor(0, 0, 255, 255);
119 SetColor(0, 255, 0, 255);
122 SetColor(0, 0, 0, 255);
125 SetColor(128, 128, 128, 255);
128 SetColor(255, 255, 0, 255);
131 SetColor(0, 255, 255, 255);
134 SetColor(255, 0, 255, 255);
144 * @param [in] red The Color r.
145 * @param [in] green The Color g.
146 * @param [in] blue The Color b.
147 * @param [in] alpha The Color a.
149 public void SetColor(float red, float green, float blue, float alpha)
158 * @brief name "R", type float (Color's Red component)
169 * @brief name "G", type float (Color's Green component)
179 * @brief name "B", type float (Color's Blue component)
189 * @brief name "A", type float (Color's Alpha value)
202 * @param [in] l The Color to add.
203 * @param [in] r The Color to add
204 * @return A reference to this
206 public static Color operator +(Color l, Color r)
208 return new Color(l.R + r.R, l.G + r.G, l.B + r.B, l.A + r.A);
215 * @param [in] l The Color to substract.
216 * @param [in] r The Color to substract
217 * @return A reference to this
219 public static Color operator -(Color l, Color r)
221 return new Color(l.R - r.R, l.G - r.G, l.B - r.B, l.A - r.A);
228 * @param [in] a The Color to multiply.
229 * @param [in] b The Color to multiply
230 * @return A reference to this
232 public static Color operator *(Color a, double b)
234 return new Color((int)(a.R * b), (int)(a.G * b), (int)(a.B * b), (int)(a.A * b));
241 * @param [in] a The Color to divide.
242 * @param [in] b The Color to divide
243 * @return float value of division operation
245 public static float operator /(Color a, Color b)
247 return (float)System.Math.Sqrt((a.R / b.R) * (a.G / b.G) * (a.B / b.B) * (a.A / b.A));
254 * @param [in] o The Color object to compare.
255 * @param [in] r The Color to add
256 * @return bool, whether object equal or not
258 public override bool Equals(object obj)
261 Color r = obj as Color;
266 return l.R == r.R && l.G == r.G && l.B == r.B && l.A == r.A;
273 * @return int, hascode of Color
275 public override int GetHashCode()
277 return base.GetHashCode();
284 * @return Color object
288 Color copy = new Color(R, G, B, A);