gpt4 book ai didi

c++ - 为什么 glm::vec 将 vec 值表示为 union ?

转载 作者:IT老高 更新时间:2023-10-28 22:33:08 26 4
gpt4 key购买 nike

我在看 vec4 glm 的源代码实现,我想知道为什么它们用 union 表示 vector 值,而不是像 float 这样的原始数据类型或 int ?

这是我在 vec4 中找到的代码实现:

union { T x, r, s; };
union { T y, g, t; };
union { T z, b, p; };
union { T w, a, q; };

如果我们只写 T x 有什么区别? , T y , T z , T w ?

最佳答案

因为 vec4 通常用于:

  • 空间坐标xyzw
  • 颜色组件rgba
  • 纹理坐标 stpq(虽然这些不太标准化,而且我我们还看到了 ru 在不同的上下文中使用)

使用 union 允许使用访问例如第二个数据成员为 .y.g,具体取决于您的偏好和语义。

关于c++ - 为什么 glm::vec 将 vec 值表示为 union ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442727/

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