diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2020-02-26 16:08:23 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2020-02-27 18:19:31 +0200 |
commit | 427d785848ba1cbf8df095ebe75c8731f30dfb5e (patch) | |
tree | 317eb2ba3ba7078f13f00cd83a0368d76f6b949f /vendor/csscolorparser/csscolorparser/csscolorparser.hpp | |
parent | 242b719f0cbb24b485e439edd0da5aedee87f444 (diff) | |
download | qtlocation-mapboxgl-427d785848ba1cbf8df095ebe75c8731f30dfb5e.tar.gz |
[build] Make csscolorparser and parsedate vendors
They have a different license from the rest of the code
and this will make it explicit. Also the script for generating
the license will dectect them correctly.
Diffstat (limited to 'vendor/csscolorparser/csscolorparser/csscolorparser.hpp')
-rw-r--r-- | vendor/csscolorparser/csscolorparser/csscolorparser.hpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/csscolorparser/csscolorparser/csscolorparser.hpp b/vendor/csscolorparser/csscolorparser/csscolorparser.hpp new file mode 100644 index 0000000000..30b308022a --- /dev/null +++ b/vendor/csscolorparser/csscolorparser/csscolorparser.hpp @@ -0,0 +1,57 @@ +// (c) Dean McNamee <dean@gmail.com>, 2012. +// C++ port by Mapbox, Konstantin Käfer <mail@kkaefer.com>, 2014-2017. +// +// https://github.com/deanm/css-color-parser-js +// https://github.com/kkaefer/css-color-parser-cpp +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef CSS_COLOR_PARSER_CPP +#define CSS_COLOR_PARSER_CPP + +#include <optional.hpp> + +#include <string> +#include <cmath> + +namespace CSSColorParser { + +struct Color { + inline Color() { + } + inline Color(unsigned char r_, unsigned char g_, unsigned char b_, float a_) + : r(r_), g(g_), b(b_), a(a_ > 1 ? 1 : a_ < 0 ? 0 : a_) { + } + unsigned char r = 0, g = 0, b = 0; + float a = 1.0f; +}; + +inline bool operator==(const Color& lhs, const Color& rhs) { + return lhs.r == rhs.r && lhs.g == rhs.g && lhs.b == rhs.b && ::fabs(lhs.a - rhs.a) < 0.0001f; +} + +inline bool operator!=(const Color& lhs, const Color& rhs) { + return !(lhs == rhs); +} + +std::experimental::optional<Color> parse(const std::string& css_str); + +} // namespace CSSColorParser + +#endif |