public:
VertexBuilder() { normal(0, 0, 1); }
- virtual ~VertexBuilder() { }
+ virtual ~VertexBuilder() = default;
void set_matrix(const Matrix &m)
{ mtx = m; }
{ normal(Vector3(x, y, z)); }
void normal(const Vector3 &n)
- { attrib(get_component_type(NORMAL3), mtx*Vector4(n.x, n.y, n.z, 0)); }
+ { attrib(get_attribute_semantic(NORMAL3), mtx*Vector4(n.x, n.y, n.z, 0)); }
void tangent(float x, float y, float z)
{ tangent(Vector3(x, y, z)); }
void tangent(const Vector3 &t)
- { attrib(get_component_type(TANGENT3), mtx*Vector4(t.x, t.y, t.z, 0)); }
-
- void binormal(float x, float y, float z)
- { binormal(Vector3(x, y, z)); }
-
- void binormal(const Vector3 &b)
- { attrib(get_component_type(BINORMAL3), mtx*Vector4(b.x, b.y, b.z, 0)); }
+ { attrib(get_attribute_semantic(TANGENT3), mtx*Vector4(t.x, t.y, t.z, 0)); }
void texcoord(float s)
{ texcoord(s, 0, 0, 1); }
{ multitexcoord(i, Vector4(s, t, r, q)); }
void multitexcoord(unsigned i, const Vector4 &t)
- { attrib(get_component_type(TEXCOORD4)+i, t); }
+ { attrib(get_attribute_semantic(TEXCOORD4)+i, t); }
void color(unsigned char r, unsigned char g, unsigned char b)
{ color(r, g, b, 255); }
{ color(Color(r, g, b, a)); }
void color(const Color &c)
- { attrib(get_component_type(COLOR4_FLOAT), Vector4(c.r, c.g, c.b, c.a)); }
+ { attrib(get_attribute_semantic(COLOR4), Vector4(c.r, c.g, c.b, c.a)); }
+
+ void group(int g0)
+ { group(g0, 0, 0, 0); }
+
+ void group(int g0, int g1)
+ { group(g0, g1, 0, 0); }
+
+ void group(int g0, int g1, int g2)
+ { group(g0, g1, g2, 0); }
+
+ void group(int g0, int g1, int g2, int g3)
+ { attrib(get_attribute_semantic(GROUP4), Vector4(g0, g1, g2, g3)); }
+
+ void weight(float w0)
+ { weight(w0, 0, 0, 0); }
+
+ void weight(float w0, float w1)
+ { weight(w0, w1, 0, 0); }
+
+ void weight(float w0, float w1, float w2)
+ { weight(w0, w1, w2, 0); }
+
+ void weight(float w0, float w1, float w2, float w3)
+ { attrib(get_attribute_semantic(WEIGHT4), Vector4(w0, w1, w2, w3)); }
+
+ void generic(unsigned i, float x)
+ { generic(i, x, 0, 0, 1); }
- void attrib(unsigned i, float x)
- { attrib(i, x, 0, 0, 1); }
+ void generic(unsigned i, float x, float y)
+ { generic(i, x, y, 0, 1); }
- void attrib(unsigned i, float x, float y)
- { attrib(i, x, y, 0, 1); }
+ void generic(unsigned i, float x, float y, float z)
+ { generic(i, x, y, z, 1); }
- void attrib(unsigned i, float x, float y, float z)
- { attrib(i, x, y, z, 1); }
+ void generic(unsigned i, float x, float y, float z, float w)
+ { generic(i, Vector4(x, y, z, w)); }
- void attrib(unsigned i, float x, float y, float z, float w)
- { attrib(i, Vector4(x, y, z, w)); }
+ void generic(unsigned i, const Vector4 &a)
+ { attrib(get_attribute_semantic(GENERIC4)+i, a); }
};
} // namespace GL