gpt4 book ai didi

c++ - 用 RBGA 值填充枚举

转载 作者:行者123 更新时间:2023-11-30 02:34:12 24 4
gpt4 key购买 nike

我想用 RBGA 值填充我的枚举。例如:

enum Colors
{
COLOR_BLACK,
COLOR_WHITE,
COLOR_RED,
COLOR_GREEN,
COLOR_DARKBLUE,
};

Colors[COLOR_BLACK] = CColor(0.0f, 0.0f, 0.0f, 1.0f);

我的问题是:我必须以哪种方式声明 CColor 才能用 4 个 float 填充我的枚举?

最佳答案

你需要一组 CColor 来做到这一点:

struct CColor
{
CColor( float r, float g, float b, float a )
: red(r), green(g), blue(b), alpha(a) {}
float red, green, blue, alpha;
};

enum Colors
{
COLOR_BLACK,
COLOR_WHITE,
COLOR_RED,
COLOR_GREEN,
COLOR_DARKBLUE,
};

CColor mycolors[] = {
CColor(0.0f, 0.0f, 0.0f, 1.0f), // COLOR_BLACK
CColor(1.0f, 1.0f, 1.0f, 1.0f), // COLOR_WHITE
CColor(1.0f, 0.0f, 0.0f, 1.0f), // COLOR_RED
CColor(0.0f, 1.0f, 0.0f, 1.0f), // COLOR_GREEN
CColor(0.0f, 0.0f, 1.0f, 1.0f) // COLOR_DARKBLUE
};

CColor GetColor( Colors col ) { return mycolors[col]; }

CColor red = GetColor(COLOR_RED);

这是有效的,因为枚举有升序数字,从 0 开始。

关于c++ - 用 RBGA 值填充枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com