🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Color.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include <stdint.h>
25
26AST_NAMESPACE_BEGIN
27
33typedef uint32_t color_t;
34
35
41constexpr inline color_t rgb(uint8_t r, uint8_t g, uint8_t b)
42{
43 return (r << 24) | (g << 16) | (b << 8) | 0xFF;
44}
45
52constexpr inline color_t rgba(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
53{
54 return (r << 24) | (g << 16) | (b << 8) | a;
55}
56
62A_CONSTEXPR_CXX14 inline void aColorToRGB(color_t color, uint8_t& r, uint8_t& g, uint8_t& b) noexcept
63{
64 r = (color >> 24) & 0xFF;
65 g = (color >> 16) & 0xFF;
66 b = (color >> 8) & 0xFF;
67}
68
75A_CONSTEXPR_CXX14 inline void aColorToRGBA(color_t color, uint8_t& r, uint8_t& g, uint8_t& b, uint8_t& a) noexcept
76{
77 r = (color >> 24) & 0xFF;
78 g = (color >> 16) & 0xFF;
79 b = (color >> 8) & 0xFF;
80 a = color & 0xFF;
81}
82
83
86class Color
87{
88public:
89 A_CONSTEXPR_CXX14 Color() noexcept: value_(static_cast<EColor>(0)) {}
90 A_CONSTEXPR_CXX14 /*explicit*/ Color(EColor value) noexcept: value_(value) {}
91 A_CONSTEXPR_CXX14 /*explicit*/ Color(color_t value) noexcept: Color(EColor(value)) {}
92 A_CONSTEXPR_CXX14 Color(uint8_t r, uint8_t g, uint8_t b) noexcept: Color(rgb(r, g, b)) {}
93 A_CONSTEXPR_CXX14 Color(uint8_t r, uint8_t g, uint8_t b, uint8_t a) noexcept: Color(rgba(r, g, b, a)) {}
94 A_CONSTEXPR_CXX14 operator EColor() const noexcept { return value_; }
95 A_CONSTEXPR_CXX14 EColor value() const noexcept { return value_; }
96 A_CONSTEXPR_CXX14 EColor& value() noexcept { return value_; }
97private:
98 EColor value_;
99};
100
101
105AST_NAMESPACE_END
Unit g
定义 Unit.cpp:443
颜色类
定义 Color.hpp:87
A_CONSTEXPR_CXX14 void aColorToRGB(color_t color, uint8_t &r, uint8_t &g, uint8_t &b) noexcept
将 Color 类型转换为 RGB 颜色值
定义 Color.hpp:62
A_CONSTEXPR_CXX14 void aColorToRGBA(color_t color, uint8_t &r, uint8_t &g, uint8_t &b, uint8_t &a) noexcept
将 Color 类型转换为 RGBA 颜色值
定义 Color.hpp:75
EColor
预定义的颜色枚举
定义 ColorNamed.hpp:35
constexpr color_t rgba(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
将 RGBA 颜色值转换为 Color 类型
定义 Color.hpp:52
constexpr color_t rgb(uint8_t r, uint8_t g, uint8_t b)
将 RGB 颜色值转换为 Color 类型
定义 Color.hpp:41