一个简单的问题:我喜欢在OpenGL Shader语言中简单创建向量:
vector = vec3(a,b,c);
你如何编写C ++ - 允许在C ++中使用这个精确代码的结构或类?
答案 0 :(得分:3)
所有这些工作都已完成,无需自己重写。您可以使用GLMmath
答案 1 :(得分:1)
这可以通过编写一个接受三个浮点数的vec3
构造函数来实现。
class vec3
{
public:
vec3( float x_, float y_, float z_ )
: x(x_)
, y(y_)
, z(z_)
{}
vec3( const vec3 &src )
{
*this = src;
}
vec3& operator =( const vec3 &src )
{
x = src.x;
y = src.y;
z = src.z;
return *this;
}
float x;
float y;
float z;
};
更有趣的是如何实现排列行为,比如
vec3 a( 1, 2, 3 );
vec3 b = a.yzx; // 2, 3, 1
vec3 c = a.yyx; // 2, 2, 1