Antkeeper
0.0.1
src
engine
color
ucs.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2023 Christopher J. Howard
3
*
4
* This file is part of Antkeeper source code.
5
*
6
* Antkeeper source code is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* Antkeeper source code is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef ANTKEEPER_COLOR_UCS_HPP
21
#define ANTKEEPER_COLOR_UCS_HPP
22
23
#include <
engine/math/vector.hpp
>
24
25
namespace
color
{
26
29
37
template
<
class
T>
38
[[nodiscard]] constexpr
math::vec3<T>
ucs_to_xyy
(
const
math::vec2<T>
&
uv
, T y = T{1}) noexcept
39
{
40
const
T d = T{1} / (T{2} *
uv
[0] - T{8} *
uv
[1] + T{4});
41
return
math::vec3<T>
{(T{3} *
uv
[0]) * d, (T{2} *
uv
[1]) * d, y};
42
}
43
45
46
}
// namespace color
47
48
#endif
// ANTKEEPER_COLOR_UCS_HPP
color
Color science.
Definition:
aces.hpp:27
color::ucs_to_xyy
constexpr math::vec3< T > ucs_to_xyy(const math::vec2< T > &uv, T y=T{1}) noexcept
Transforms CIE 1960 UCS chromaticity coordinates into the CIE xyY colorspace.
Definition:
ucs.hpp:38
render::vertex_attribute_location::uv
@ uv
Vertex UV texture coordinates (vec2)
Definition:
vertex-attribute-location.hpp:36
math::vector
n-dimensional vector.
Definition:
vector.hpp:44
vector.hpp