color_hsl.h
1/*
2** ClanLib SDK
3** Copyright (c) 1997-2020 The ClanLib Team
4**
5** This software is provided 'as-is', without any express or implied
6** warranty. In no event will the authors be held liable for any damages
7** arising from the use of this software.
8**
9** Permission is granted to anyone to use this software for any purpose,
10** including commercial applications, and to alter it and redistribute it
11** freely, subject to the following restrictions:
12**
13** 1. The origin of this software must not be misrepresented; you must not
14** claim that you wrote the original software. If you use this software
15** in a product, an acknowledgment in the product documentation would be
16** appreciated but is not required.
17** 2. Altered source versions must be plainly marked as such, and must not be
18** misrepresented as being the original software.
19** 3. This notice may not be removed or altered from any source distribution.
20**
21** Note: Some of the libraries ClanLib may link to may have additional
22** requirements or restrictions.
23**
24** File Author(s):
25**
26** Mark Page
27*/
28
29#pragma once
30
31namespace clan
32{
35
36 class Color;
37 class Colorf;
38
42 template<typename Type, typename ColorType>
44 {
45 public:
48 ColorHSLx() : h((Type)0), s((Type)0), l((Type)0), a((Type)0) {}
49 ColorHSLx(Type h, Type s, Type l, Type a) : h(h), s(s), l(l), a(a) {}
50 ColorHSLx(const ColorHSLx<Type, ColorType> &copy) { h = copy.h; s = copy.s; l = copy.l; a = copy.a; }
53
54 Type h, s, l, a;
55
56 operator ColorType();
57
59 ColorHSLx<Type, ColorType> &operator = (const ColorHSLx<Type, ColorType>& copy) { h = copy.h; s = copy.s; l = copy.l; a = copy.a; return *this; }
60
62 bool operator == (const ColorHSLx<Type, ColorType>& color) const { return ((h == color.h) && (s == color.s) && (l == color.l) && (a == color.a)); }
63
65 bool operator != (const ColorHSLx<Type, ColorType>& color) const { return ((h != color.h) || (s != color.s) || (l != color.l) || (a != color.a)); }
66 };
67
71
73}
74
Color HSL description class.
Definition color_hsl.h:44
bool operator!=(const ColorHSLx< Type, ColorType > &color) const
!= operator.
Definition color_hsl.h:65
ColorHSLx(const Color &color)
ColorHSLx(const Colorf &color)
Type a
Definition color_hsl.h:54
ColorHSLx(Type h, Type s, Type l, Type a)
Definition color_hsl.h:49
ColorHSLx< Type, ColorType > & operator=(const ColorHSLx< Type, ColorType > &copy)
= operator.
Definition color_hsl.h:59
bool operator==(const ColorHSLx< Type, ColorType > &color) const
== operator.
Definition color_hsl.h:62
Type s
Definition color_hsl.h:54
Type l
Definition color_hsl.h:54
Type h
Definition color_hsl.h:54
ColorHSLx(const ColorHSLx< Type, ColorType > &copy)
Definition color_hsl.h:50
ColorHSLx()
Constructs a color.
Definition color_hsl.h:48
Color description class.
Definition color.h:46
Floating point color description class (for float).
Definition color.h:799
ColorHSLx< float, Colorf > ColorHSLf
Definition color_hsl.h:69
ColorHSLx< double, Colorf > ColorHSLd
Definition color_hsl.h:70
ColorHSLx< int, Color > ColorHSLi
Definition color_hsl.h:68
Definition clanapp.h:36
@ color
value is an url