UdonLibrary 1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
HSV.hpp
[詳解]
1//
2// HSV色空間
3//
4// Copyright (c) 2022-2024 udonrobo
5//
6
7#pragma once
8
9#include "Forward/HSV.hpp"
10#include "Forward/RGB.hpp"
11
12#ifdef _MSC_VER
13# pragma warning(push)
14# pragma warning(disable : 26495)
15#endif
16
19inline Udon::RGB::RGB(const HSV& hsv) noexcept
20 : RGB(hsv.toRGB())
21{
22}
23
24#ifdef _MSC_VER
25# pragma warning(pop)
26#endif
27
30inline Udon::RGB Udon::HSV::toRGB() const noexcept
31{
32 const ValueType f = h * 6;
33 const ValueType p = (255 - s) * v >> 8;
34 const ValueType q = (255 - (f * s >> 8)) * v >> 8;
35 const ValueType t = (255 - ((255 - f) * s >> 8)) * v >> 8;
36 switch (h * 6 >> 8)
37 {
38 case 0: return { v, t, p };
39 case 1: return { q, v, p };
40 case 2: return { p, v, t };
41 case 3: return { p, q, v };
42 case 4: return { t, p, v };
43 case 5: return { v, p, q };
44 default: return {};
45 }
46}
HSV色空間
Definition HSV.hpp:20
ValueType h
色相
Definition HSV.hpp:26
ValueType s
彩度
Definition HSV.hpp:29
ValueType v
明度
Definition HSV.hpp:32
RGB toRGB() const noexcept
RGB色空間に変換
Definition HSV.hpp:30
uint8_t ValueType
要素の型
Definition HSV.hpp:23
RGB色空間
Definition RGB.hpp:21
constexpr RGB() noexcept
デフォルトコンストラクタ
Definition RGB.hpp:36