🛰️航天仿真算法库 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 constexpr Color() noexcept: value_(0) {}
90 constexpr Color(color_t value) noexcept: value_(value) {}
91 constexpr Color(uint8_t r, uint8_t g, uint8_t b) noexcept: value_(rgb(r, g, b)) {}
92 constexpr Color(uint8_t r, uint8_t g, uint8_t b, uint8_t a) noexcept: value_(rgba(r, g, b, a)) {}
93 constexpr operator color_t() const noexcept { return value_; }
94 constexpr color_t value() const noexcept { return value_; }
95 A_CONSTEXPR_CXX14 color_t& value() noexcept { return value_; }
96private:
97 color_t value_;
98};
99
100
104AST_NAMESPACE_END
Unit g
定义 Unit.cpp:433
颜色类
定义 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
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